我正在为我构建的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文件,它应该只有 要求此文件顶部的计算机' 。我的意思是确定它有效,但我希望通过RSpec变得非常好,并以最好和最简洁的方式做事。
当然,计算机类在wins_move方法中使用 board.rb 。 wins_move传递两个参数,板和计算机。 BOARD本身是一个哈希(瓦片是键,X或O是值)。它只是一些代码,但你可以在这里看到board.rb:https://github.com/DavidPardy/ttt_v2/blob/master/lib/board.rb
我尝试将哈希硬编码到computer_spec.rb中,但没有去。其中一个更常见的错误是“未初始化的常量板”,这是有道理的......我认为。
那么最好的解决方法就是要求计算机'在这个文件的顶部?
感谢任何意见,谢谢。
编辑:我刚刚使用了spec_helper.rb,不知道为什么我从一开始就没有使用它。答案 0 :(得分:0)
一些选项:
将计算机和电路板类定义放在一个文件中并包含该文件。
将电路板添加为自动加载文件
添加ActiveSupport :: Dependencies.autoload_paths<< “#{config.root} / somefolder”