Configuration
Avant de tester votre programme, assurez-vous de :
- Compiler votre programme pour générer le fichier
.so - Ajouter
litesvmcomme dépendance de développement dans le fichierCargo.toml - Ajouter toutes les dépendances de développement supplémentaires qui
pourraient être nécessaires, comme
solana-sdketlitesvm-token - Créer un fichier de test dans votre répertoire
tests
Structure de base d'un test de programme
Voici toutes les étapes de base nécessaires pour appeler et exécuter une instruction dans un programme Solana.
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!");}
L'environnement de test par défaut généré avec LiteSVM::new() inclut toutes
les fonctionnalités d'exécution activées, les sysvars par défaut, les
précompilations, les programmes spl, la vérification des signatures, ainsi que
tous les programmes intégrés, comme le System Program.
Si vous souhaitez interagir avec un programme qui n'est pas inclus dans l'environnement de test par défaut, vous devez déployer ce programme dans l'environnement de test.
Étapes suivantes
Dans la section suivante, nous allons tout apprendre sur le déploiement de programmes dans l'environnement de test litesvm.
Is this page helpful?