Guía de Inicio Rápido
Esta guía cubre los conceptos básicos: cómo crear una cuenta, financiar una cuenta y enviar una transacción.
Instalar Dependencias
Agrega LiteSVM a tus dependencias de desarrollo:
cargo add --dev litesvm
Varios crates de Solana mejoran la experiencia de pruebas al proporcionar tipos
y utilidades esenciales. Puedes usar el crate de conveniencia solana-sdk o los
crates de componentes individuales:
cargo add --dev solana-sdk
Crear Archivo de Prueba
Dentro de tu espacio de trabajo, crea una carpeta para tests.
mkdir tests
Crear y Financiar una Cuenta
Vamos a escribir tu primera prueba con LiteSVM.
Dentro de tu carpeta tests, crea un nuevo archivo y copia este código:
use litesvm::LiteSVM;use solana_sdk::signature::{Keypair, Signer};#[test]fn create_account() {// Create the test environmentlet mut svm = LiteSVM::new();// Create a test accountlet user = Keypair::new();// Fund the account with SOLsvm.airdrop(&user.pubkey(), 1_000_000_000).unwrap();// Check the balancelet balance = svm.get_balance(&user.pubkey()).unwrap();assert_eq!(balance, 1_000_000_000);println!("Account funded with {} SOL", balance as f64 / 1e9);}
Ejecutar Tu Prueba
cargo test create_account -- --show-output
Deberías ver:
running 1 testtest create_account ... oksuccesses:---- create_account stdout ----Account funded with 1 SOLsuccesses:create_account
¡Listo! Acabas de crear tu primera prueba con litesvm, que cubre la creación de una cuenta y su financiación.
Ejecutar una Transacción
Ahora vamos a crear una transacción de transferencia.
Crea un nuevo archivo de prueba y copia este código:
use litesvm::LiteSVM;use solana_sdk::{signature::{Keypair, Signer},system_instruction,transaction::Transaction,};#[test]fn test_transfer() {let mut svm = LiteSVM::new();// Create two accountslet alice = Keypair::new();let bob = Keypair::new();// Fund Alicesvm.airdrop(&alice.pubkey(), 2_000_000_000).unwrap();// Create transfer instructionlet transfer = system_instruction::transfer(&alice.pubkey(),&bob.pubkey(),1_000_000_000, // 1 SOL);// Build and sign transactionlet tx = Transaction::new_signed_with_payer(&[transfer],Some(&alice.pubkey()),&[&alice],svm.latest_blockhash(),);// Send it (execution happens immediately)svm.send_transaction(tx).unwrap();// Check new balancesassert_eq!(svm.get_balance(&bob.pubkey()).unwrap(), 1_000_000_000);assert!(svm.get_balance(&alice.pubkey()).unwrap() < 1_000_000_000);println!("Transfer successful!");}
¡Prueba completada! Esta prueba cubre la ejecución de la instrucción de transferencia del System Program.
Ejecutar Todas las Pruebas
cargo test -- --show-output
Deberías ver:
running 1 testtest create_account ... oksuccesses:---- create_account stdout ----Account funded with 1 SOLsuccesses:create_accounttest result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04sRunning tests/test_transfer.rs (target/debug/deps/test_transfer-f174954e7483f36b)running 1 testtest test_transfer ... oksuccesses:---- test_transfer stdout ----Transfer successful!successes:test_transfertest result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
¡Eso es todo! Ahora has creado exitosamente pruebas de litesvm que crean y financian cuentas y ejecutan transacciones.
Próximos pasos
Por qué LiteSVM → Aprende por qué querrías utilizar LiteSVM para pruebas
Prueba tu programa → Aprende
cómo probar tu propio programa de Solana
Ejemplos
→ Consulta soluciones listas para usar en
escenarios comunes y ejemplos de repositorios completos
Referencia
de API → Aprende funciones avanzadas y
configuraciones personalizadas
Is this page helpful?