私が作成した Ruby tic tac toe ゲームの RSpec テストを書いています。最初は失敗していたテストが成功しているので、これは良い兆候です。これは computer_spec.rb ファイルです。
require 'computer'
require 'board'
describe "the computer selects the winning move as spot 3" do
it "when spots 1 and 2 are chosen" do
computer = Computer.new
board = Board.new
computer.winning_move(board, [1,2]).should eq(3)
end
end
これは computer_spec.rb ファイルなので、実際にはこのファイルの先頭にrequire 'computer'だけが必要です。確かにうまくいくとは思いますが、私は RSpec を上手に使いこなし、最善かつ最も簡潔な方法で物事を進めたいと思っています。
当然のことながら、コンピューター クラスは、wining_move メソッドでboard.rbを使用します。wining_move には、board と computer の 2 つの引数が渡されます。BOARD 自体はハッシュです (タイルがキーで、X または O が値です)。少しのコードですが、ここで board.rb を見ることができます: https://github.com/DavidPardy/ttt_v2/blob/master/lib/board.rb
ハッシュを computer_spec.rb にハードコーディングしようとしましたが、うまくいきませんでした。より一般的なエラーの 1 つは、「初期化されていない定数ボード」です。これは理にかなっていると思います。
では、このファイルの先頭に「computer」を必要とするだけの最善の方法は何でしょうか?
ご意見をお待ちしております。
編集: spec_helper.rb を使用しましたが、最初からそれを使用していなかった理由がわかりません。