Dappsでゲームを作ってみる(Part.3) コントラクトのテストを書いてみる
前回まで
前回は、定義したコントラクトのデプロイを行いました。
実は並行してテストも書いたりしていたので、そちらも記事にしたいと思います。
テストとは?
今更、僕が説明するまでもないですよね?(笑)
今時珍しいかもしれませんが、「テストなんかめんどーだから書かねーぜ」なんて人もいるかもしれませんが、 殊、Dapps開発においては、テストは必須です。
もし、テストを書かない場合、常にデプロイして、動作確認をしないとなりません。
何より、dappsはコントラクトの変更時、どうしてもアドレスが変わってしまいます。
非常に面倒ですので、面倒を回避するためにもテストを書きましょう。
テストの作成
truffle
はテストの作成もコマンドを通して行う事ができます。
デフォルトで作成される中身は、こんな感じです。
BoxFactoryがなんの require
もなしに記述されているので、このままではもちろん動作しません。
最低限の変更をおこない、testを実行してみましょう。
true
をtrue
かどうか判定しているだけなので、当然passします(笑)
パッと見た感じ、テスティングフレームワークは、chai
が使われているようですね。
テストを書く
ブログの順序だと、
- コントラクトを書く
- コントラクトをデプロイする
- コントラクトのテストを書く
という順序になってしまいましたが、実際の時間軸としては、
- コントラクトのテストを書く && コントラクトを書く
- コントラクトをデプロイする
です。
テストのないプロダクトを、ネットワーク上にデプロイするなんて、無謀もいいところですよね ((((;゚Д゚))))
というわけで、テストを書く
ひとまず、こんな感じでよろしいかなと。
さあ、実行してみましょう!
パーペキです…!
テストにあたってのMigrationに関して
テストの実行時、solidity側に変更があった場合、自動的にコンパイルされ、テスト用にデプロイまで行われるようです。
なので、テストの実行時、いちいちマイグレーションを実行する必要性はありません。
振り返り
truffleでは、テストの実行環境も躓くことなく実行できるので、非常に心強いですね。
早くもこんなに素晴らしいフレームワークが登場している事に感動を覚えます。
次回は、testnet上へのデプロイを試してみようと思います。