Tài liệu SolanaLiteSVMRustKiểm Tra Chương Trình Của Bạn

Bắt Đầu Nhanh

Thiết Lập

Trước khi kiểm thử chương trình của bạn, hãy đảm bảo bạn đã:

  1. Build chương trình của bạn để tạo file .so
  2. Thêm litesvm làm dev dependency vào file Cargo.toml
  3. Thêm các dev dependency bổ sung có thể cần thiết, như solana-sdklitesvm-token
  4. Tạo file kiểm thử trong thư mục tests của bạn

Cấu Trúc Kiểm Thử Chương Trình Cơ Bản

Dưới đây là tất cả các bước cơ bản cần thiết để gọi và thực thi một lệnh trong chương trình 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!");
}

Môi trường kiểm thử mặc định được tạo với LiteSVM::new() bao gồm tất cả các tính năng runtime được bật, sysvars mặc định, precompiles, các chương trình spl, sigverify và tất cả các chương trình tích hợp sẵn, như System Program.

Nếu bạn muốn tương tác với bất kỳ chương trình nào không có trong môi trường kiểm thử mặc định, bạn phải triển khai chương trình đó vào môi trường kiểm thử.

Các Bước Tiếp Theo

Trong phần tiếp theo, chúng ta sẽ tìm hiểu tất cả về việc triển khai các chương trình vào môi trường kiểm thử litesvm.

Is this page helpful?

Mục lục

Chỉnh sửa trang