【发布时间】:2014-12-25 16:45:34
【问题描述】:
规格:
# spec/row_spec.rb
require "spec_helper"
module Mastermind
describe Row do
context "#initialize" do
it "has four elements by default" do
row = Row.new
expect(row.values.size).to eq 4
end
it "can only go up to 6" do
row = Row.new
expect(row.values.max).to be <= 6
end
end
end
end
代码:
# lib/mastermind/row.rb
module Mastermind
class Row
attr_accessor :values
def initialize (values=random_row)
@values = values
end
def random_row
4.times {random||=[] << rand(1..6)}
end
end
end
Row 应该是主谋游戏的一行,有四个介于 1 和 6 之间的随机值,并且这个测试应该确保它正常运行。看起来 values 返回的是 int 而不是数组。为什么?
我将如何自行解决此问题?我试图通过添加一些简单的东西来准确地查看值发生了什么
row = Row.new
puts row.values
到我的 row.rb,但我只是得到一个未初始化的常量错误。为什么这不起作用?
【问题讨论】: