Solidity

Solidityのテストとデプロイ

成功例だけでなく失敗例もテストし、安全に公開する準備をします。

Solidity入門の講座一覧

01

成功と失敗をテストする

テストは「デプロイできたか」だけでは不十分です。初期値、正常な入力、境界値、権限エラー、残高不足、同じ処理の二重実行を分けて確認します。

テスト観点CHECKLIST
初期値: count() == 0
正常系: increment() 後に count() == 1
権限: owner以外のreset() はrevert
境界: amount == 0、最大値
失敗後: revert後に残高や権限が変わらない
02

Remixで手動テストする

Remix VMでアカウントを切り替え、操作の前後に状態変数とログを確認します。エラーが起きるケースも、実際にrevertすることを見ておくと、コードの条件が理解しやすくなります。

確認の順番COMMAND
1. Account 0でデプロイ
2. Account 0で管理関数を実行
3. Account 1へ切り替える
4. 同じ管理関数を実行してrevertを確認
5. 失敗後も状態が変わっていないことを読む
確認結果OUTPUT
Account 0で管理関数 → 成功
Account 1で管理関数 → revert
失敗後の状態 → Account 0で実行した値のまま
03

ネットワークを使い分ける

Remix VMはブラウザ内の学習環境、ローカルノードは自分のPCで動く開発環境、テストネットは公開ネットワークに近い検証環境です。本番ネットワークへ進む前に、チェーンID、RPC、ウォレット、ガス、デプロイ先アドレスを確認します。

本番デプロイは取り消せない

秘密鍵、シードフレーズ、実資産を入力したり、学習コードを本番へ公開したりしないでください。書き込み操作は必ず対象ネットワークと金額を確認します。

04

ソースコードを検証する

デプロイ後にエクスプローラーでソースコードを検証すると、公開されたバイトコードが提示したソースから生成されたものか確認できます。検証済みでも、コードが安全だと保証されるわけではありません。

05

公開前チェック

  • コンパイラー、最適化、EVMバージョンを記録したか
  • ABI、アドレス、デプロイ履歴を保存したか
  • テストネットで権限・送金・失敗ケースを確認したか
  • コントラクトを検証し、利用者向けの仕様を公開したか
  • 監査やレビューが必要な金額を扱っていないか

最後に練習問題で学んだ要素を組み合わせます。