Solana documentatieLiteSVMRustUw programma testen

Snel aan de slag

Instelling

Voordat u uw programma test, zorg ervoor dat u:

  1. Bouw uw programma om het bestand .so te genereren
  2. Voeg litesvm toe als een dev-afhankelijkheid aan het bestand Cargo.toml
  3. Voeg eventuele aanvullende dev-afhankelijkheden toe die mogelijk nodig zijn, zoals solana-sdk en litesvm-token
  4. Maak een testbestand aan in uw map tests

Basisindeling voor programmatest

Hier zijn alle basisstappen die nodig zijn om een instructie aan te roepen en uit te voeren in een Solana-programma.

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 environment
let mut svm = LiteSVM::new();
// Deploy your program to the test environment
let 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 accounts
let payer = Keypair::new();
svm.airdrop(&payer.pubkey(), 10_000_000_000).unwrap();
// Create your instruction
let instruction = Instruction {
program_id,
accounts: vec![
AccountMeta::new(payer.pubkey(), true),
],
data: vec![],
};
// Build transaction
let tx = Transaction::new_signed_with_payer(
&[instruction],
Some(&payer.pubkey()),
&[&payer],
svm.latest_blockhash(),
);
// Send transaction
let result = svm.send_transaction(tx).unwrap();
// Check transaction succeeded
println!("Transaction logs: {:?}", result.logs);
println!("Program executed successfully!");
}

De standaard testomgeving die wordt gegenereerd met LiteSVM::new() bevat alle ingeschakelde runtime-functies, standaard sysvars, precompiles, spl-programma's, sigverify en alle ingebouwde programma's, zoals het System Program.

Als u wilt communiceren met een programma dat niet is opgenomen in de standaard testomgeving, moet u dat programma implementeren in de testomgeving.

Volgende stappen

In het volgende gedeelte leren we alles over het implementeren van programma's in de litesvm testomgeving.

Is this page helpful?

Inhoudsopgave

Pagina Bewerken
© 2026 Solana Foundation. Alle rechten voorbehouden.