rspec 中的这个符号是什么:it { is_expected.to ... }

问题描述 投票:0回答:2

我正在阅读“更好的规格”页面,其中一个示例中写道: 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

这个语法是什么?

ruby rspec
2个回答
20
投票
here

所概述的一行语法指南下

RSpec 支持单行语法来设置期望值 主题。 RSpec 将为示例提供一个自动的文档字符串 从示例中使用的匹配器生成。这是设计的 特别是为了帮助避免在文档的情况下重复 示例中使用的字符串和匹配器彼此完全镜像。 当过度使用时,它会产生文档输出, 没有很好地阅读或无助于理解你的对象 描述。

有两种口味:

is_expected 简单地定义为expect(subject),旨在用于 当您使用 rspec-expectations 及其较新的基于期望的 语法。


6
投票
这更具可读性。
如果您可以从测试中读取描述,为什么要添加描述。
你的代码应该简单、智能且可读......
但如果你真的想要,你甚至可以添加小说......由你决定:)

© www.soinside.com 2019 - 2024. All rights reserved.