セットアップ
プログラムをテストする前に、以下を確認してください:
.soファイルを生成するためにプログラムをビルドするlitesvmをCargo.tomlファイルのdev dependencyとして追加するsolana-sdkやlitesvm-tokenなど、必要な追加のdev dependencyを追加するtestsディレクトリにテストファイルを作成する
基本的なプログラムテストの構成
以下は、Solanaプログラムでinstructionsを呼び出して実行するために必要な基本的な手順です。
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 environmentlet mut svm = LiteSVM::new();// Deploy your program to the test environmentlet 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 accountslet payer = Keypair::new();svm.airdrop(&payer.pubkey(), 10_000_000_000).unwrap();// Create your instructionlet instruction = Instruction {program_id,accounts: vec![AccountMeta::new(payer.pubkey(), true),],data: vec![],};// Build transactionlet tx = Transaction::new_signed_with_payer(&[instruction],Some(&payer.pubkey()),&[&payer],svm.latest_blockhash(),);// Send transactionlet result = svm.send_transaction(tx).unwrap();// Check transaction succeededprintln!("Transaction logs: {:?}", result.logs);println!("Program executed successfully!");}
LiteSVM::new()で生成されるデフォルトのテスト環境には、すべてのランタイム機能、デフォルトのsysvar、プリコンパイル、splプログラム、署名検証、およびSystem
Programを含むすべての組み込みプログラムが有効になっています。
デフォルトのテスト環境に含まれていないプログラムを使用する場合は、そのプログラムをテスト環境にデプロイする必要があります。
次のステップ
次のセクションでは、litesvmのテスト環境へのプログラムのデプロイについて詳しく学びます。
Is this page helpful?