【发布时间】:2017-08-02 16:23:53
【问题描述】:
所以这是我在 Rspec:w3ii.com: rspec 上找到的关于 rspec 助手的简要教程。这是示例的代码:
class Dog
attr_reader :good_dog, :has_been_walked
def initialize(good_or_not)
@good_dog = good_or_not
@has_been_walked = false
end
def walk_dog
@has_been_walked = true
end
end
describe Dog do
def create_and_walk_dog(good_or_bad)
Dog.new(good_or_bad).walk_dog
end
it 'should be able to create and walk a good dog' do
dog = create_and_walk_dog(true)
expect(dog.good_dog).to be true
expect(dog.has_been_walked).to be true
end
end
当我运行这个时,我得到这个错误:
NoMethodError:未定义方法“good_dog”为真:TrueClass
# ./dor.rb:22:in 'block in >'
我无法理解对 Dog.new() 的调用如何返回 true:TrueClass 对象而不是简单的狗。
【问题讨论】:
-
我会非常小心地使用 w3ii 作为参考站点,因为它看起来质量相当低。有更好的places to start。
标签: ruby-on-rails ruby rspec