1

对于集成测试,我会检查页面内容,以确保用户能看到我想要的。

例如:

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>

从长远来看,这是否有意义,还是有更好/标准化的方法?

4

1 回答 1

1

我不会,国际化的字符串是供人类阅读的。

作为替代方案,看看您是否可以以一种使通过选择断言更具确定性的方式来构建文档。

it "shows list of articles" do
    get :articles
    assert_select "h1.articles-title"
end

并在视图中。

<h1 class="articles-title"><%=t :title %></h1>

虽然我知道您的原始测试用例断言存在正确的标题,但我认为像这样的一般集成测试的最大好处是存在title

于 2012-12-04T16:06:30.230 回答