对于集成测试,我会检查页面内容,以确保用户能够看到我想要的内容。
例如:
it "shows list of articles" do
get :articles
response.body.should have_content("Articles found:")
end
在文章视图的某处,有这一行:
<h1>Articles found:</h1>
我想摆脱字符串欺骗,使代码更容易维护和测试更稳固。我正在考虑将这些字符串放入config / locales / en.yml,然后执行类似这样的操作
it "shows list of articles" do
get :articles
response.body.should have_content(I18n.t('title'))
end
并在视图中:
<h1><%=t :title %></h1>
从长远角度来看是否有意义还是有更好/标准化的方式?
答案 0 :(得分:1)
我不会,国际化的字符串是供人阅读的。
作为替代方案,看看你是否可以通过选择更具确定性的方式来构建文档。
it "shows list of articles" do
get :articles
assert_select "h1.articles-title"
end
在视图中。
<h1 class="articles-title"><%=t :title %></h1>
虽然我理解您的原始测试用例断言是否存在正确的标题,但我认为像这样的一般集成测试的最大好处是存在标题。