テストコードの記述
minitestを使用してテストコードを記述していきます。
第一章で実装した基本ロジックを担保していきたいと思います。
place_pieceのテスト
まずは簡単なところからやっていきます。
以下のテストを実装しましょう
# 概要: コマの配置メソッドを担保する
# 期待値: 入力した値に応じてコマが配置されること
def test_place_piece
end実装例
下記に実装例を記載します。
# 概要: コマの配置メソッドを担保する
# 期待値: 入力した値に応じてコマが配置されること
def test_place_piece
board = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
place_piece(board, 1, 0, 0)
assert_equal 1, board[0][0]
board = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
place_piece(board, 2, 1, 1)
assert_equal 2, board[1][1]
endget_oppnent_playerのテスト
1を渡したら2が、2を渡したら1が帰ってくることを担保するだけでOKです。
実装例
win?のテスト
勝利条件のテストは記述量が多くてちょっと面倒ですが、全て担保しておくに限ります。
横、縦、斜め全てのラインを担保させます。
実装例
can_plase_piece?のテスト
ゲーム板に空きマスが存在するかどうかのメソッドをテストします。
ゲーム板を埋めるのがポイントです。
実装例
continue?のテスト
ゲーム継続条件をテストします。
ゲームが終了する条件を考えたらテストしやすいです。
実装例
gets_piece_locationのテスト
最後にgets_piece_locationをテストしてみましょう。
このメソッドに関しては今までどおりいきません。
スタブを使わないと実装するのが難しいと思います。
一度トライしてみてください。
実装例
※ printにスタブつけてるのは、テスト時に標準出力が出るのが邪魔だからです。
第二章で実装するテストは、これでおしまいです。
次にテストが登場するのは第四章のリファクタリングです。
第四章以降からはコードの実装とテストの実装を同時に行っていきます。
最後に、この章で実装したコードを以下のリポジトリに乗せておきます。
最終更新