Kurulum
Programınızı test etmeden önce şunları yaptığınızdan emin olun:
.sodosyasını oluşturmak için programınızı derleyinlitesvmbağımlılığınıCargo.tomldosyasına geliştirme bağımlılığı olarak ekleyinsolana-sdkvelitesvm-tokengibi gerekli olabilecek ek geliştirme bağımlılıklarını ekleyintestsdizininizde bir test dosyası oluşturun
Temel Program Test Yapısı
Bir Solana programında bir talimatı çağırmak ve yürütmek için gereken tüm temel adımlar aşağıda verilmiştir.
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() ile oluşturulan varsayılan test ortamı; tüm çalışma zamanı
özelliklerini, varsayılan sysvar'ları, ön derleme bileşenlerini, spl
programlarını, sigverify'ı ve System Program dahil tüm yerleşik programları
içerir.
Varsayılan test ortamına dahil edilmeyen herhangi bir programla etkileşim kurmak istiyorsanız, o programı test ortamına dağıtmanız gerekir.
Sonraki Adımlar
Bir sonraki bölümde, litesvm test ortamına program dağıtımı hakkında her şeyi öğreneceğiz.
Is this page helpful?