有没有办法将长RSpec线分成两条不同的线:
expect(....).to
eq(.....)
更新:
现在我有一个错误:
故障/错误: 期待(@ query_builder.questions_from_time(@time_to_test))。至 引发ArgumentError: expect语法不支持运算符匹配器,因此您必须将匹配器传递给
#to
。
如果我删除换行符错误就会消失
答案 0 :(得分:7)
to
在技术上只是一种方法,但常见的风格是在rspec中忽略to
方法的括号。但是,似乎Ruby解析器只是没有意识到你试图向to
方法发送一个参数,如果你将它分成没有括号的新行。
以下任何一项都应该有效......
expect(....).
to eq(.....)
或
expect(....)
.to eq(.....)
或
expect(....).to eq(
.....
)
或
expect(
....
).to eq(.....)
或
expect(
....
).to eq(
.....
)
我想它的长短只是“在没有被括号括起来的论证之前不要破坏”。至于使用哪一种 - 这取决于具体的代码。我会做最容易阅读的事情并保持线路长度相当短。
答案 1 :(得分:7)
您可以在该行的末尾使用反斜杠来指示该行继续使用ruby:
expect(...).to \
eq(...)