Bắt Đầu

Hướng Dẫn Bắt Đầu Nhanh

Hướng dẫn này bao gồm các kiến thức cơ bản: cách tạo tài khoản, nạp tiền vào tài khoản và gửi một giao dịch.

Cài Đặt Các Phụ Thuộc

Thêm LiteSVM vào các phụ thuộc phát triển của bạn:

cargo add --dev litesvm

Một số crate Solana giúp nâng cao trải nghiệm kiểm tra bằng cách cung cấp các kiểu dữ liệu và tiện ích cần thiết. Bạn có thể sử dụng crate tiện lợi solana-sdk hoặc các crate thành phần riêng lẻ:

cargo add --dev solana-sdk

Tạo Tệp Kiểm Tra

Trong không gian làm việc của bạn, hãy tạo một thư mục cho tests.

mkdir tests

Tạo và Nạp Tiền cho Tài Khoản

Hãy viết bài kiểm tra LiteSVM đầu tiên của bạn.

Trong thư mục tests của bạn, hãy tạo một tệp mới và sao chép đoạn mã này:

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);
}

Chạy Bài Kiểm Tra của Bạn

cargo test create_account -- --show-output

Bạn sẽ thấy:

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

Vậy là xong! Bạn vừa tạo bài kiểm thử litesvm đầu tiên của mình, bao gồm việc tạo một tài khoản và nạp tiền vào đó.

Thực Thi Một Giao Dịch

Bây giờ hãy tạo một giao dịch chuyển tiền.

Tạo một tệp kiểm thử mới và sao chép đoạn mã này:

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!");
}

Kiểm thử hoàn tất! Bài kiểm thử này bao gồm việc thực thi lệnh chuyển tiền từ System Program.

Chạy Tất Cả Các Bài Kiểm Thử

cargo test -- --show-output

Bạn sẽ thấy:

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

Vậy là xong! Bây giờ bạn đã tạo thành công các bài kiểm thử litesvm để tạo, nạp tiền vào tài khoản và thực thi các giao dịch.

Các Bước Tiếp Theo

Tại Sao Dùng LiteSVM → Tìm hiểu lý do bạn nên sử dụng LiteSVM để kiểm thử

Kiểm Thử Chương Trình Của Bạn → Tìm hiểu cách kiểm thử chương trình Solana của bạn
Ví Dụ → Xem các giải pháp copy-paste cho các tình huống phổ biến và ví dụ kho lưu trữ đầy đủ
Tài Liệu API → Tìm hiểu các tính năng nâng cao và cấu hình tùy chỉnh

Is this page helpful?

Mục lục

Chỉnh sửa trang