我有PathsHelper
通过处理其他参数以及当前网址的上下文来覆盖foo_url
和foo_path
。这包含在ApplicationController
。
现在,我有:
describe ApplicationController do
describe "#foo_url" do
...
end
describe "#foo_path" do
...
end
end
我想知道做一些事情是否更好:
describe PathsHelper do
describe "#foo_url" do
...
end
describe "#foo_path" do
...
end
end
如果是这样,有没有合理的方法在辅助测试中设置一些实例变量,因为有基于当前url的条件。
答案 0 :(得分:2)
控制器
请记住,在RSpec中,您正在指定行为,并确保这些行为按照您希望的方式发生。这些行为通过与您的控制器的交互发生。因此,请为控制器编写规范,并确保测试帮助程序所显示的行为。
你想避免过多地攻击你的类和对象的内容。这是RSpec出现的主要原因之一。人们对他们班级的内部状态进行了愚蠢的测试,而不是测试所期望的结果。
答案 1 :(得分:2)
虽然RSpec确实的目标是专注于行为,但我仍然在帮助规范中指定了复杂的助手。这就是为什么首先在RSpec中存在辅助规范的原因:)