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

Быстрый старт

Настройка

Перед тестированием вашей программы убедитесь, что вы:

  1. Собрали программу для генерации файла .so
  2. Добавили litesvm как зависимость для разработки в файл Cargo.toml
  3. Добавили все необходимые дополнительные зависимости для разработки, например 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(), включает все активированные функции среды выполнения, системные переменные по умолчанию, прекомпиляции, программы spl, проверку подписей, а также все встроенные программы, в том числе System Program.

Если вы хотите взаимодействовать с программой, которая не включена в среду тестирования по умолчанию, вы должны развернуть эту программу в тестовой среде.

Следующие шаги

В следующем разделе мы узнаем всё о развёртывании программ в тестовой среде litesvm.

Is this page helpful?

Содержание

Редактировать страницу