Документація SolanaLiteSVMRustТестування вашої програми

Швидкий старт

Налаштування

Перед тестуванням вашої програми переконайтеся, що ви:

  1. Зібрали вашу програму для генерації файлу .so
  2. Додали litesvm як dev-залежність до файлу Cargo.toml
  3. Додали будь-які додаткові dev-залежності, які можуть знадобитися, наприклад solana-sdk та litesvm-token
  4. Створили тестовий файл у директорії tests

Базова структура тесту програми

Ось усі основні кроки, необхідні для виклику та виконання інструкції в програмі Solana.

tests/program_test.rs
use litesvm::LiteSVM;
use solana_sdk::{
instruction::{AccountMeta, Instruction},
pubkey::Pubkey,
signature::{Keypair, Signer},
transaction::Transaction,
};
use my_program;
#[test]
fn test_my_program() {
// Initialize the test environment
let mut svm = LiteSVM::new();
// Deploy your program to the test environment
let program_id = Pubkey::from(my_program::ID);
let program_bytes = include_bytes!("../../../target/deploy/my_program.so");
svm.add_program(program_id, program_bytes);
// Create and fund test accounts
let payer = Keypair::new();
svm.airdrop(&payer.pubkey(), 10_000_000_000).unwrap();
// Create your instruction
let instruction = Instruction {
program_id,
accounts: vec![
AccountMeta::new(payer.pubkey(), true),
],
data: vec![],
};
// Build transaction
let tx = Transaction::new_signed_with_payer(
&[instruction],
Some(&payer.pubkey()),
&[&payer],
svm.latest_blockhash(),
);
// Send transaction
let result = svm.send_transaction(tx).unwrap();
// Check transaction succeeded
println!("Transaction logs: {:?}", result.logs);
println!("Program executed successfully!");
}

Стандартне тестове середовище, яке генерується за допомогою LiteSVM::new(), включає всі увімкнені функції середовища виконання, стандартні sysvar'и, прекомпіляції, spl-програми, перевірку підписів та всі вбудовані програми, зокрема System Program.

Якщо ви хочете взаємодіяти з будь-якою програмою, яка не включена до стандартного тестового середовища, ви повинні розгорнути цю програму в тестовому середовищі.

Наступні кроки

У наступному розділі ми дізнаємося все про розгортання програм у тестовому середовищі LiteSVM.

Is this page helpful?

Зміст

Редагувати сторінку