【发布时间】:2013-09-12 21:20:29
【问题描述】:
此代码正在运行,但我想检查它是否可靠/良好实践/惯用。 背景:我正在关注 Michael Hartl 的 rails 教程,并且正在研究 8.5(第 8 章的练习),将测试与实现分离。
在 user_pages_spec.rb 我不喜欢代码
expect { click_button submit }.not_to change(User, :count)
因为change(User, :count) 看起来有点像黑客。所以在 spec/support/utilities.rb 我写道:
def create_user
change(User, :count)
end
我将 user_pages_spec.rb 中的行替换为
expect { click_button submit }.not_to create_user
这样合理吗?
【问题讨论】:
-
如果你以后要为订单和书籍编写测试怎么办?你会创建类似的方法,
create_order和create_book?恕我直言,这是不必要的复杂性/ LOC 增加。 -
除非到处使用
create_user方法,否则我认为它不足以帮助理解。如果是这样,请考虑一个自定义匹配器,它无论如何都要上课,或者从测试或科目的课程中推断出课程。 -
你觉得下面的答案怎么样?
标签: ruby-on-rails rspec railstutorial.org