1

使用 RSpec 和 Shoulda,您可以:

it { should belong_to(:product) }

我被告知规范应该指定观察到的行为。该规范看起来也确实像可以在模型中编写的代码的重复。那么有没有时间和地点来实际使用这样的测试呢?

4

1 回答 1

3

更大的问题是,为什么测试这个不好?如果您被告知规范应该指定观察到的行为,并且具有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,您将首先编写测试以指定必须存在关联,然后放入代码以维护该测试。

于 2013-02-15T17:29:26.277 回答