我正在阅读'Better specs'页面,并在其中一个示例中说:
context 'when logged in' do
it { is_expected.to respond_with 200 }
end
context 'when logged out' do
it { is_expected.to respond_with 401 }
end
我不承认这一点。我通常会这样做:
context 'when logged out' do
it 'responds with a 401' do
expect(response).to eq(401)
end
end
那是什么语法?
答案 0 :(得分:4)
这是Rspec 3.XX中大量引入的内容。它符合here
概述的单行语法指南RSpec支持单行语法,用于设置期望值 学科。 RSpec将为示例提供一个自动的文档字符串 从示例中使用的匹配器生成。这是设计的 专门用于帮助避免在doc的情况下出现重复 字符串和示例中使用的匹配器完全相互镜像。 如果过度使用,它可以产生文档输出 阅读不好或有助于理解你的对象 描述
这有两种形式:
is_expected简单地定义为expect(subject)并且是专为 当你使用较新的基于期望的rspec期望时 语法。
答案 1 :(得分:2)
it { is_expected.to respond_with 200 }
更具可读性。 如果您可以从测试中读取它,为什么添加说明。 您的代码应该是简单,智能和可读的同时... 但是,如果你真的想要,你可以添加甚至小说......由你决定:)