Premiers pas

Guide de démarrage rapide

Ce guide couvre les bases : comment créer un compte, alimenter un compte et envoyer une transaction.

Installer les dépendances

Ajoutez LiteSVM à vos dépendances de développement :

cargo add --dev litesvm

Plusieurs crates Solana améliorent l'expérience de test en fournissant des types et utilitaires essentiels. Vous pouvez utiliser la crate de commodité solana-sdk ou les crates de composants individuels :

cargo add --dev solana-sdk

Créer un fichier de test

Dans votre espace de travail, créez un dossier pour tests.

mkdir tests

Créer et alimenter un compte

Écrivons votre premier test LiteSVM.

Dans votre dossier tests, créez un nouveau fichier et copiez ce 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);
}

Exécuter votre test

cargo test create_account -- --show-output

Vous devriez voir :

running 1 test
test create_account ... ok
successes:
---- create_account stdout ----
Account funded with 1 SOL
successes:
create_account

C'est tout ! Vous venez de réaliser votre premier test litesvm, qui couvre la création d'un compte et son approvisionnement.

Exécuter une transaction

Créons maintenant une transaction de transfert.

Créez un nouveau fichier de test et copiez ce 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 terminé ! Ce test couvre l'exécution de l'instruction de transfert depuis le System Program.

Exécuter tous les tests

cargo test -- --show-output

Vous devriez voir :

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

C'est tout ! Vous avez maintenant créé avec succès des tests litesvm qui créent et alimentent des comptes et exécutent des transactions.

Prochaines étapes

Pourquoi LiteSVM → Découvrez pourquoi vous pourriez vouloir utiliser LiteSVM pour les tests

Tester votre programme → Apprenez comment tester votre propre programme Solana
Exemples → Consultez des solutions prêtes à l'emploi pour les scénarios courants et des exemples de dépôts complets
Référence API → Découvrez les fonctionnalités avancées et les configurations personnalisées

Is this page helpful?

Table des matières

Modifier la page
© 2026 Fondation Solana. Tous droits réservés.