Οδηγός Γρήγορης Εκκίνησης
Αυτός ο οδηγός καλύπτει τα βασικά: πώς να δημιουργήσετε έναν λογαριασμό, να χρηματοδοτήσετε έναν λογαριασμό και να στείλετε μια συναλλαγή.
Εγκατάσταση Εξαρτήσεων
Προσθέστε το LiteSVM στις εξαρτήσεις ανάπτυξής σας:
cargo add --dev litesvm
Αρκετά crate του Solana βελτιώνουν την εμπειρία δοκιμών παρέχοντας βασικούς
τύπους και βοηθητικά εργαλεία. Μπορείτε να χρησιμοποιήσετε το crate ευκολίας
solana-sdk ή τα επιμέρους crate συνιστωσών:
cargo add --dev solana-sdk
Δημιουργία Αρχείου Δοκιμών
Μέσα στον χώρο εργασίας σας, δημιουργήστε έναν φάκελο για tests.
mkdir tests
Δημιουργία και Χρηματοδότηση Λογαριασμού
Ας γράψουμε το πρώτο σας τεστ LiteSVM.
Μέσα στον φάκελο tests, δημιουργήστε ένα νέο αρχείο και αντιγράψτε αυτόν τον
κώδικα:
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);}
Εκτελέστε το Τεστ σας
cargo test create_account -- --show-output
Θα πρέπει να δείτε:
running 1 testtest create_account ... oksuccesses:---- create_account stdout ----Account funded with 1 SOLsuccesses:create_account
Τέλος! Μόλις δημιουργήσατε το πρώτο σας τεστ litesvm, που καλύπτει τη δημιουργία ενός λογαριασμού και τη χρηματοδότησή του.
Εκτέλεση Συναλλαγής
Τώρα ας δημιουργήσουμε μια συναλλαγή μεταφοράς.
Δημιουργήστε ένα νέο αρχείο δοκιμών και αντιγράψτε αυτόν τον κώδικα:
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!");}
Το τεστ ολοκληρώθηκε! Αυτό το τεστ καλύπτει την εκτέλεση της εντολής μεταφοράς από το System Program.
Εκτέλεση Όλων των Δοκιμών
cargo test -- --show-output
Θα πρέπει να δείτε:
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
Αυτό ήταν! Τώρα έχετε δημιουργήσει επιτυχώς litesvm δοκιμές που δημιουργούν και χρηματοδοτούν λογαριασμούς και εκτελούν συναλλαγές.
Επόμενα Βήματα
Γιατί το LiteSVM → Μάθετε γιατί θα θέλατε να χρησιμοποιήσετε το LiteSVM για δοκιμές
Δοκιμή του Προγράμματός σας
→ Μάθετε πώς να δοκιμάσετε το
δικό σας πρόγραμμα Solana
Παραδείγματα
→ Δείτε έτοιμες λύσεις για συνηθισμένα
σενάρια και παραδείγματα πλήρους αποθετηρίου
Αναφορά API
→ Μάθετε προηγμένες λειτουργίες και
προσαρμοσμένες ρυθμίσεις
Is this page helpful?