Dokumentacja SolanaLiteSVMRustTestowanie programu

Szybki start

Konfiguracja

Przed przetestowaniem programu upewnij się, że:

  1. Zbudujesz program, aby wygenerować plik .so
  2. Dodasz litesvm jako zależność deweloperską do pliku Cargo.toml
  3. Dodasz wszelkie dodatkowe zależności deweloperskie, które mogą być potrzebne, takie jak solana-sdk i litesvm-token
  4. Utworzysz plik testowy w katalogu tests

Podstawowy układ testu programu

Oto wszystkie podstawowe kroki potrzebne do wywołania i wykonania instrukcji w programie 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 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!");
}

Domyślne środowisko testowe generowane przez LiteSVM::new() zawiera wszystkie włączone funkcje środowiska uruchomieniowego, domyślne sysvary, prekompilacje, programy spl, weryfikację podpisów oraz wszystkie wbudowane programy, takie jak System Program.

Jeśli chcesz korzystać z programu, który nie jest uwzględniony w domyślnym środowisku testowym, musisz wdrożyć ten program do środowiska testowego.

Następne kroki

W następnej sekcji dowiemy się wszystkiego o wdrażaniu programów do środowiska testowego litesvm.

Is this page helpful?

Spis treści

Edytuj stronę