rspecでテストを書き直す

記述してきたテストを見ながらrspecに置き換えていきましょう。

rspecを使ったTicTacToeValidatorTestを実装する

以前に実装したtic_tac_toe_validator_test.rbの内容を参考にrspec版を新しく作成していきます。

specフォルダにtic_tac_toe_validator_spec.rbを作成してください。

(rspecの場合、xxx_testでなくxxx_specと書きます)

rspecを使ったテストの実装

早速、rspecを使ってTicTacToeValidatorTestを記述してみます。

require 'rspec'
require_relative "../tic_tac_toe/tic_tac_toe_validator"
require_relative "../tic_tac_toe/errors/tic_tac_toe_input_error"

RSpec.describe "3目並べのバリデーションに関してテスト" do

  context "ユーザからの入力値に誤りがある場合" do 

    it "意図したエラークラスの返却" do
      expect { TicTacToeValidator.validate_input_value!("a", "0") }.to raise_error(TicTacToeInputError, "行番号の入力に誤りがあります")
      expect { TicTacToeValidator.validate_input_value!("4", "0") }.to raise_error(TicTacToeInputError, "行番号の入力に誤りがあります")
      expect { TicTacToeValidator.validate_input_value!("0", "a") }.to raise_error(TicTacToeInputError, "列番号の入力に誤りがあります")
      expect { TicTacToeValidator.validate_input_value!("0", "4") }.to raise_error(TicTacToeInputError, "列番号の入力に誤りがあります")
    end

  end

  context "ユーザからの入力値に誤りがない場合" do 

    it "エラーが返却されないことを担保" do
      expect { TicTacToeValidator.validate_input_value!("0", "0") }.not_to raise_error
      expect { TicTacToeValidator.validate_input_value!("2", "2") }.not_to raise_error
    end

  end

end

テストのタイトルや動きが日本語で記述され分かりやすくなりました。

テストコードもスッキリしています。

rspecの実行

コンテナの中に入って以下のコマンドを叩きます。

実行すると以下のような画面になると思います。

rspecが気に入ったらminitestで記述していた他のテストコードも置き換えていきましょう。

以下のリポジトリに掲載されているテストコードを参考にして作ってみてください。

最終更新