快速入门指南
本指南涵盖基础内容:如何创建账户、为账户充值以及发送交易。
安装依赖项
将 LiteSVM 添加到您的开发依赖项中:
cargo add --dev litesvm
多个 Solana crate 通过提供必要的类型和工具来增强测试体验。您可以使用
solana-sdk 便捷 crate 或各个独立组件 crate:
cargo add --dev solana-sdk
创建测试文件
在您的工作区内,为 tests 创建一个文件夹。
mkdir tests
创建并充值账户
让我们编写您的第一个 LiteSVM 测试。
在您的 tests 文件夹内,创建一个新文件并复制以下代码:
tests/create_account.rs
use litesvm::LiteSVM;use solana_sdk::signature::{Keypair, Signer};#[test]fn create_account() {// Create the test environmentlet mut svm = LiteSVM::new();// Create a test accountlet user = Keypair::new();// Fund the account with SOLsvm.airdrop(&user.pubkey(), 1_000_000_000).unwrap();// Check the balancelet balance = svm.get_balance(&user.pubkey()).unwrap();assert_eq!(balance, 1_000_000_000);println!("Account funded with {} SOL", balance as f64 / 1e9);}
运行您的测试
cargo test create_account -- --show-output
您应该会看到:
running 1 testtest create_account ... oksuccesses:---- create_account stdout ----Account funded with 1 SOLsuccesses:create_account
太好了! 您刚刚完成了第一个 litesvm 测试,涵盖了创建账户并为其充值。
执行交易
现在让我们创建一笔转账交易。
创建一个新的测试文件并复制以下代码:
tests/transfer_test.rs
use litesvm::LiteSVM;use solana_sdk::{signature::{Keypair, Signer},system_instruction,transaction::Transaction,};#[test]fn test_transfer() {let mut svm = LiteSVM::new();// Create two accountslet alice = Keypair::new();let bob = Keypair::new();// Fund Alicesvm.airdrop(&alice.pubkey(), 2_000_000_000).unwrap();// Create transfer instructionlet transfer = system_instruction::transfer(&alice.pubkey(),&bob.pubkey(),1_000_000_000, // 1 SOL);// Build and sign transactionlet tx = Transaction::new_signed_with_payer(&[transfer],Some(&alice.pubkey()),&[&alice],svm.latest_blockhash(),);// Send it (execution happens immediately)svm.send_transaction(tx).unwrap();// Check new balancesassert_eq!(svm.get_balance(&bob.pubkey()).unwrap(), 1_000_000_000);assert!(svm.get_balance(&alice.pubkey()).unwrap() < 1_000_000_000);println!("Transfer successful!");}
测试完成! 本测试涵盖了执行来自 System Program 的转账指令。
运行所有测试
cargo test -- --show-output
您应该看到:
running 1 testtest create_account ... oksuccesses:---- create_account stdout ----Account funded with 1 SOLsuccesses:create_accounttest result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04sRunning tests/test_transfer.rs (target/debug/deps/test_transfer-f174954e7483f36b)running 1 testtest test_transfer ... oksuccesses:---- test_transfer stdout ----Transfer successful!successes:test_transfertest result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
就是这样! 现在您已成功创建了 litesvm 测试,这些测试可以创建并充值账户,以及执行交易。
下一步
为什么选择 LiteSVM → 了解为什么您应该使用 LiteSVM 进行测试
Is this page helpful?