الإعداد
قبل اختبار برنامجك، تأكد من:
- بناء برنامجك لإنشاء ملف
.so - إضافة
litesvmكاعتمادية تطوير إلى ملفCargo.toml - إضافة أي اعتماديات تطوير إضافية قد تكون مطلوبة، مثل
solana-sdkوlitesvm-token - إنشاء ملف اختبار في مجلد
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 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() تتضمن جميع ميزات
وقت التشغيل ممكّنة، والمتغيرات النظامية الافتراضية، والبرامج المُجمَّعة مسبقاً،
وبرامج SPL، والتحقق من التوقيع، وجميع البرامج المدمجة، مثل System Program.
إذا كنت تريد التفاعل مع أي برنامج غير مضمّن في بيئة الاختبار الافتراضية، فيجب عليك نشر ذلك البرنامج في بيئة الاختبار.
الخطوات التالية
في القسم التالي، سنتعرف على كل ما يتعلق بنشر البرامج في بيئة اختبار litesvm.
Is this page helpful?