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 :
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);}
Exécuter votre test
cargo test create_account -- --show-output
Vous devriez voir :
running 1 testtest create_account ... oksuccesses:---- create_account stdout ----Account funded with 1 SOLsuccesses: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 :
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 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 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
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?