【发布时间】:2014-07-14 20:44:30
【问题描述】:
假设我有一个非常复杂的视图和一个非常复杂的测试规范。 我想为它添加另一个功能,我想用 RSpec 推动开发。
我想将联系人添加到 Employee 类。
在employee.html.erb 的某处我添加了一行:
#lots of data rendered so far
<%= render @employee.contacts %>
#even more here
目前我真的不知道_contact.html.erb partial 需要是什么样子。要直接从我的员工主视图规范show.html.erb_spec.rb 对其进行测试,我将不得不做很多设置来填充或模拟不同的数据库员工是从(项目、部门等)构建的。
我现在只需要测试那部分,我不关心这个员工目前所属的部门、项目和其他东西,我不想把时间花在嘲笑它们上。稍后我可能会将其添加到我的主要规范中,并创建测试整个视图所需的所有内容,而不仅仅是 jet。
您是否有任何技术或方法来创建 Employee 的实例,向其中添加一些联系人,并仅测试部分视图? 无需担心 Employee 的所有其他内容。
IGEL 答案更新:
我同意你的观点,对 expect(...).to receive(:render) 的测试对于请求规范来说是 100% 足够的,如果我已经有了部分模板,我就不会再进一步了。 我只是想走极端,通过 RSpec 驱动我的 div 和 span。不测试新功能的行为,但它看起来。你认为它不值得吗?
我根本不测试视图(结构),但我看过一些文档,例如 Rails Tutorial,其中 Michael 不仅测试行为,还测试结构。我想我会试一试:)
【问题讨论】:
标签: ruby-on-rails rspec