Schnellstartanleitung
Dieser Leitfaden behandelt die Grundlagen: wie man Konten erstellt, Konten auflädt und eine Transaktion sendet.
Abhängigkeiten installieren
Füge LiteSVM zu deinen Entwicklungsabhängigkeiten hinzu:
cargo add --dev litesvm
Mehrere Solana-Crates verbessern die Testerfahrung, indem sie wichtige Typen und
Hilfsfunktionen bereitstellen. Du kannst den solana-sdk Convenience-Crate oder
die einzelnen Komponenten-Crates verwenden:
cargo add --dev solana-sdk
Testdatei erstellen
Erstelle in deinem Workspace einen Ordner für tests.
mkdir tests
Konten erstellen und aufladen
Lass uns deinen ersten LiteSVM-Test schreiben.
Erstelle in deinem Ordner tests eine neue Datei und kopiere diesen 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);}
Deinen Test ausführen
cargo test create_account -- --show-output
Du solltest Folgendes sehen:
running 1 testtest create_account ... oksuccesses:---- create_account stdout ----Account funded with 1 SOLsuccesses:create_account
Das war's! Du hast gerade deinen ersten litesvm-Test erstellt, der das Erstellen eines Konten und dessen Finanzierung abdeckt.
Eine Transaktion ausführen
Jetzt erstellen wir eine Transfer-Transaktion.
Erstelle eine neue Testdatei und kopiere diesen 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 abgeschlossen! Dieser Test deckt die Ausführung der Transfer- Anweisungen aus dem System Program ab.
Alle Tests ausführen
cargo test -- --show-output
Du solltest Folgendes sehen:
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
Das war's! Jetzt haben Sie erfolgreich litesvm-Tests erstellt, die Konten anlegen und finanzieren sowie Transaktionen ausführen.
Nächste Schritte
Warum LiteSVM → Erfahren Sie, warum Sie LiteSVM für Tests verwenden sollten
Ihr Programm testen →
Erfahren Sie, wie Sie Ihr eigenes Solana-Programm testen können
Beispiele → Sehen Sie sich
Copy-Paste-Lösungen für häufige Szenarien und vollständige
Repository-Beispiele an
API-Referenz
→ Lernen Sie erweiterte Funktionen und
benutzerdefinierte Konfigurationen kennen
Is this page helpful?