NoMethodError:未定义的方法`错误'为true:TrueClass

时间:2014-12-15 12:31:52

标签: ruby-on-rails ruby unit-testing

我正在构建一个Web应用程序,运行测试时出现此错误:

test "product attributes must not be empty" do
    product = Product.new
    assert product = product.invalid?
    assert product.errors[:title].any?
    assert product.errors[:description].any?
    assert product.errors[:price].any?
    assert product.errors[:image_url].any?
end
  

NoMethodError:'

中未定义的方法errors' for true:TrueClass test/models/product_test.rb:7:in阻止

是因为我使用的是比书中更新版本的Ruby吗?如果是这样,会有什么选择?

1 个答案:

答案 0 :(得分:7)

在第assert product = product.invalid?行中,您将product.invalid?的结果true分配给product变量。它应该是:

assert product.invalid?