Aan de slag

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:

tests/create_account.rs
use litesvm::LiteSVM;
use solana_sdk::signature::{Keypair, Signer};
#[test]
fn create_account() {
// Create the test environment
let mut svm = LiteSVM::new();
// Create a test account
let user = Keypair::new();
// Fund the account with SOL
svm.airdrop(&user.pubkey(), 1_000_000_000).unwrap();
// Check the balance
let 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 test
test create_account ... ok
successes:
---- create_account stdout ----
Account funded with 1 SOL
successes:
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:

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 accounts
let alice = Keypair::new();
let bob = Keypair::new();
// Fund Alice
svm.airdrop(&alice.pubkey(), 2_000_000_000).unwrap();
// Create transfer instruction
let transfer = system_instruction::transfer(
&alice.pubkey(),
&bob.pubkey(),
1_000_000_000, // 1 SOL
);
// Build and sign transaction
let 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 balances
assert_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 test
test create_account ... ok
successes:
---- create_account stdout ----
Account funded with 1 SOL
successes:
create_account
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
Running tests/test_transfer.rs (target/debug/deps/test_transfer-f174954e7483f36b)
running 1 test
test test_transfer ... ok
successes:
---- test_transfer stdout ----
Transfer successful!
successes:
test_transfer
test 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?

Inhoudsopgave

Pagina Bewerken
© 2026 Solana Foundation. Alle rechten voorbehouden.