وثائق سولاناLiteSVMRustاختبار برنامجك

البداية السريعة

الإعداد

قبل اختبار برنامجك، تأكد من:

  1. بناء برنامجك لإنشاء ملف .so
  2. إضافة litesvm كاعتمادية تطوير إلى ملف Cargo.toml
  3. إضافة أي اعتماديات تطوير إضافية قد تكون مطلوبة، مثل solana-sdk و litesvm-token
  4. إنشاء ملف اختبار في مجلد tests

هيكل اختبار البرنامج الأساسي

إليك جميع الخطوات الأساسية اللازمة لاستدعاء وتنفيذ تعليمة في برنامج سولانا.

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?

جدول المحتويات

تعديل الصفحة