Snelstartgids
Deze gids behandelt de basisprincipes: hoe je een account aanmaakt, een account financiert en een transactie verstuurt.
Installeer afhankelijkheden
Voeg LiteSVM toe aan je dev-afhankelijkheden:
cargo add --dev litesvm
Verschillende Solana-crates verbeteren de testervaring door essentiële typen en
hulpprogramma's te bieden. Je kunt de solana-sdk gemakscrate of de
afzonderlijke componentcrates gebruiken:
cargo add --dev solana-sdk
Maak testbestand aan
Maak binnen je werkruimte een map aan voor tests.
mkdir tests
Een account aanmaken en financieren
Laten we je eerste LiteSVM-test schrijven.
Maak binnen je map tests een nieuw bestand aan en kopieer deze code:
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);}
Je test uitvoeren
cargo test create_account -- --show-output
Je zou het volgende moeten zien:
running 1 testtest create_account ... oksuccesses:---- create_account stdout ----Account funded with 1 SOLsuccesses:create_account
Dat is het! Je hebt zojuist je eerste litesvm-test gemaakt, die het aanmaken van een account en het financieren ervan omvat.
Voer een Transactie Uit
Laten we nu een overboekingstransactie aanmaken.
Maak een nieuw testbestand aan en kopieer deze code:
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!");}
Test voltooid! Deze test omvat het uitvoeren van de overboekingsinstructie vanuit het System Program.
Voer Alle Tests Uit
cargo test -- --show-output
Je zou het volgende moeten zien:
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
Dat is alles! Nu heb je met succes litesvm-tests gemaakt die accounts aanmaken en financieren, en transacties uitvoeren.
Volgende stappen
Waarom LiteSVM → Lees waarom je LiteSVM zou willen gebruiken voor testen
Jouw programma testen → Leer
hoe je je eigen Solana-programma kunt testen
Voorbeelden
→ Bekijk kant-en-klare oplossingen voor
veelvoorkomende scenario's en volledige repository-voorbeelden
API-referentie → Leer geavanceerde
functies en aangepaste configuraties
Is this page helpful?