Ρύθμιση
Πριν δοκιμάσετε το πρόγραμμά σας, βεβαιωθείτε ότι:
- Δημιουργήστε το πρόγραμμά σας για να παράγετε το αρχείο
.so - Προσθέστε το
litesvmως dev dependency στο αρχείοCargo.toml - Προσθέστε τυχόν επιπλέον dev dependencies που ενδέχεται να χρειαστούν, όπως
το
solana-sdkκαι τοlitesvm-token - Δημιουργήστε ένα αρχείο δοκιμών στον κατάλογο
tests
Βασική Διάταξη Δοκιμής Προγράμματος
Ακολουθούν όλα τα βασικά βήματα που απαιτούνται για την κλήση και εκτέλεση μιας εντολής σε ένα πρόγραμμα Solana.
tests/program_test.rs
use litesvm::LiteSVM;use solana_sdk::{instruction::{AccountMeta, Instruction},pubkey::Pubkey,signature::{Keypair, Signer},transaction::Transaction,};use my_program;#[test]fn test_my_program() {// Initialize the test environmentlet mut svm = LiteSVM::new();// Deploy your program to the test environmentlet program_id = Pubkey::from(my_program::ID);let program_bytes = include_bytes!("../../../target/deploy/my_program.so");svm.add_program(program_id, program_bytes);// Create and fund test accountslet payer = Keypair::new();svm.airdrop(&payer.pubkey(), 10_000_000_000).unwrap();// Create your instructionlet instruction = Instruction {program_id,accounts: vec![AccountMeta::new(payer.pubkey(), true),],data: vec![],};// Build transactionlet tx = Transaction::new_signed_with_payer(&[instruction],Some(&payer.pubkey()),&[&payer],svm.latest_blockhash(),);// Send transactionlet result = svm.send_transaction(tx).unwrap();// Check transaction succeededprintln!("Transaction logs: {:?}", result.logs);println!("Program executed successfully!");}
Το προεπιλεγμένο περιβάλλον δοκιμών που δημιουργείται με το LiteSVM::new()
περιλαμβάνει όλες τις λειτουργίες χρόνου εκτέλεσης ενεργοποιημένες,
προεπιλεγμένα sysvars, precompiles, προγράμματα spl, sigverify, καθώς και όλα τα
ενσωματωμένα προγράμματα, όπως το System Program.
Εάν θέλετε να αλληλεπιδράσετε με οποιοδήποτε πρόγραμμα που δεν περιλαμβάνεται στο προεπιλεγμένο περιβάλλον δοκιμών, πρέπει να αναπτύξετε αυτό το πρόγραμμα στο περιβάλλον δοκιμών.
Επόμενα Βήματα
Στην επόμενη ενότητα, θα μάθουμε τα πάντα σχετικά με την ανάπτυξη προγραμμάτων στο περιβάλλον δοκιμών litesvm.
Is this page helpful?