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で記述していた他のテストコードも置き換えていきましょう。
以下のリポジトリに掲載されているテストコードを参考にして作ってみてください。
最終更新