시작하기

빠른 시작 가이드

이 가이드에서는 계정 생성, 계정 자금 충전, 트랜잭션 전송 등 기본 사항을 다룹니다.

의존성 설치

LiteSVM을 개발 의존성에 추가하세요:

cargo add --dev litesvm

여러 Solana 크레이트는 필수 타입과 유틸리티를 제공하여 테스트 경험을 향상시킵니다. solana-sdk 편의 크레이트나 개별 컴포넌트 크레이트를 사용할 수 있습니다:

cargo add --dev solana-sdk

테스트 파일 생성

워크스페이스 내에 tests 폴더를 생성하세요.

mkdir tests

계정 생성 및 자금 충전

첫 번째 LiteSVM 테스트를 작성해 보겠습니다.

tests 폴더 안에 새 파일을 생성하고 다음 코드를 복사하세요:

tests/create_account.rs
use litesvm::LiteSVM;
use solana_sdk::signature::{Keypair, Signer};
#[test]
fn create_account() {
// Create the test environment
let mut svm = LiteSVM::new();
// Create a test account
let user = Keypair::new();
// Fund the account with SOL
svm.airdrop(&user.pubkey(), 1_000_000_000).unwrap();
// Check the balance
let balance = svm.get_balance(&user.pubkey()).unwrap();
assert_eq!(balance, 1_000_000_000);
println!("Account funded with {} SOL", balance as f64 / 1e9);
}

테스트 실행

cargo test create_account -- --show-output

다음과 같은 결과가 표시됩니다:

running 1 test
test create_account ... ok
successes:
---- create_account stdout ----
Account funded with 1 SOL
successes:
create_account

완료! litesvm의 첫 번째 테스트를 완성했습니다. 이 테스트는 계정 생성과 자금 지원을 다룹니다.

트랜잭션 실행

이제 전송 트랜잭션을 생성해 보겠습니다.

새 테스트 파일을 만들고 이 코드를 복사하세요:

tests/transfer_test.rs
use litesvm::LiteSVM;
use solana_sdk::{
signature::{Keypair, Signer},
system_instruction,
transaction::Transaction,
};
#[test]
fn test_transfer() {
let mut svm = LiteSVM::new();
// Create two accounts
let alice = Keypair::new();
let bob = Keypair::new();
// Fund Alice
svm.airdrop(&alice.pubkey(), 2_000_000_000).unwrap();
// Create transfer instruction
let transfer = system_instruction::transfer(
&alice.pubkey(),
&bob.pubkey(),
1_000_000_000, // 1 SOL
);
// Build and sign transaction
let 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 balances
assert_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!");
}

테스트 완료! 이 테스트는 System Program의 전송 명령 실행을 다룹니다.

모든 테스트 실행

cargo test -- --show-output

다음과 같이 표시됩니다:

running 1 test
test create_account ... ok
successes:
---- create_account stdout ----
Account funded with 1 SOL
successes:
create_account
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
Running tests/test_transfer.rs (target/debug/deps/test_transfer-f174954e7483f36b)
running 1 test
test test_transfer ... ok
successes:
---- test_transfer stdout ----
Transfer successful!
successes:
test_transfer
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s

완료! 이제 계정을 생성하고 자금을 조달하며 트랜잭션을 실행하는 litesvm 테스트를 성공적으로 만들었습니다.

다음 단계

LiteSVM을 사용하는 이유 → 테스트에 LiteSVM을 사용하려는 이유를 알아보세요

프로그램 테스트 → 나만의 Solana 프로그램을 테스트하는 방법을 알아보세요
예제 → 일반적인 시나리오에 대한 복사-붙여넣기 솔루션과 전체 저장소 예제를 확인하세요
API 레퍼런스 → 고급 기능 및 사용자 정의 구성을 알아보세요

Is this page helpful?

목차

페이지 편집