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 đã:
- Build chương trình của bạn để tạo file
.so - Thêm
litesvmlàm dev dependency vào fileCargo.toml - Thêm các dev dependency bổ sung có thể cần thiết, như
solana-sdkvàlitesvm-token - Tạo file kiểm thử trong thư mục
testscủ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 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!");}
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?