テストコードの記述

minitestを使用してテストコードを記述していきます。

第一章で実装した基本ロジックを担保していきたいと思います。

place_pieceのテスト

まずは簡単なところからやっていきます。

以下のテストを実装しましょう

  # 概要: コマの配置メソッドを担保する
  # 期待値: 入力した値に応じてコマが配置されること
  def test_place_piece
  end

課題コーナー

test_place_pieceメソッドを作成してテストを実行する

実装例

下記に実装例を記載します。

  # 概要: コマの配置メソッドを担保する
  # 期待値: 入力した値に応じてコマが配置されること
  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]
  end

get_oppnent_playerのテスト

1を渡したら2が、2を渡したら1が帰ってくることを担保するだけでOKです。

課題コーナー

test_get_opponent_playerメソッドを作成してテストを実行する

実装例

win?のテスト

勝利条件のテストは記述量が多くてちょっと面倒ですが、全て担保しておくに限ります。

横、縦、斜め全てのラインを担保させます。

課題コーナー

test_win?メソッドを作成してテストを実行する

実装例

can_plase_piece?のテスト

ゲーム板に空きマスが存在するかどうかのメソッドをテストします。

ゲーム板を埋めるのがポイントです。

課題コーナー

test_can_plase_piece?メソッドを作成してテストを実行する

実装例

continue?のテスト

ゲーム継続条件をテストします。

ゲームが終了する条件を考えたらテストしやすいです。

課題コーナー

test_continue?メソッドを作成してテストを実行する

実装例

gets_piece_locationのテスト

最後にgets_piece_locationをテストしてみましょう。

このメソッドに関しては今までどおりいきません。

スタブを使わないと実装するのが難しいと思います。

一度トライしてみてください。

課題コーナー

stubを使ってtest_gets_positionを実装してください

実装例

※ printにスタブつけてるのは、テスト時に標準出力が出るのが邪魔だからです。

第二章で実装するテストは、これでおしまいです。

次にテストが登場するのは第四章のリファクタリングです。

第四章以降からはコードの実装とテストの実装を同時に行っていきます。

最後に、この章で実装したコードを以下のリポジトリに乗せておきます。

最終更新