使用 RSpec 和 Shoulda,您可以:
it { should belong_to(:product) }
我被告知规范应该指定观察到的行为。该规范看起来也确实像可以在模型中编写的代码的重复。那么有没有时间和地点来实际使用这样的测试呢?
使用 RSpec 和 Shoulda,您可以:
it { should belong_to(:product) }
我被告知规范应该指定观察到的行为。该规范看起来也确实像可以在模型中编写的代码的重复。那么有没有时间和地点来实际使用这样的测试呢?
更大的问题是,为什么测试这个不好?如果您被告知规范应该指定观察到的行为,并且具有belongs_to
自动为它提供访问关联的方法的模型,那不是要观察的东西吗?您可以改为测试该#product
方法,但该测试将如何进行?
it "has an association to a product" do
product = Product.create
model = Model.create(:product_id => product.id)
model.product.should eq product
end
这真的比仅使用单衬管更好吗?
it { should belong_to(:product) }
如果代码在任何方面都很重要,您应该对其进行测试。
此外,如果您遵循 TDD,您将首先编写测试以指定必须存在关联,然后放入代码以维护该测试。