我正在为我构建的 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,并以最好和最简洁的方式做事。
自然,Computer Class 在winning_move 方法中使用board.rb。wins_move 传递了两个参数,board 和 computer。BOARD 本身是一个散列(tile 是键,X 或 O 是值)。这是一些代码,但您可以在此处查看 board.rb:https ://github.com/DavidPardy/ttt_v2/blob/master/lib/board.rb
我试图将哈希硬编码到computer_spec.rb,但不行。最常见的错误之一是“未初始化的常量板”,这是有道理的……我认为。
那么解决这个问题的最好方法是在这个文件的顶部只需要“计算机”吗?
任何意见表示赞赏,谢谢。
编辑:我刚刚使用了 spec_helper.rb,不知道为什么我从一开始就没有使用它。