Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 将RSpec匹配器断开为多行_Ruby_Rspec - Fatal编程技术网

Ruby 将RSpec匹配器断开为多行

Ruby 将RSpec匹配器断开为多行,ruby,rspec,Ruby,Rspec,是否有办法将长RSpec线拆分为两条单独的线: expect(....).to eq(.....) ? 更新: 现在我有一个错误: 失败/错误: 期望(@query\u builder.questions\u from\u time(@time\u to\u test)).to 参数错误: expect语法不支持运算符匹配器,因此必须将匹配器传递给#to 如果我删除换行符,错误就会消失。to从技术上讲只是一种方法,但常见的样式是在rspec中的to方法上省略括号。但是,如果您将参数分隔到

是否有办法将长RSpec线拆分为两条单独的线:

expect(....).to
   eq(.....)
?

更新

现在我有一个错误:

失败/错误: 期望(@query\u builder.questions\u from\u time(@time\u to\u test)).to 参数错误: expect语法不支持运算符匹配器,因此必须将匹配器传递给
#to


如果我删除换行符,错误就会消失。

to
从技术上讲只是一种方法,但常见的样式是在rspec中的
to
方法上省略括号。但是,如果您将参数分隔到没有括号的新行,Ruby解析器似乎没有意识到您正试图将参数发送到
to
方法

以下任何一项都应该有效

expect(....).
  to eq(.....)


我猜它的长短只是“不要在一个没有括号的论点之前打断”。至于使用哪一个,这取决于特定的代码。我会做任何最容易阅读的事情,并保持行的长度相当短。

您可以在行的末尾使用反斜杠向ruby指示行继续:

expect(...).to \
  eq(...)

您可以像任何其他Ruby代码一样中断is。你有什么问题?如果有更多空格/断行的问题,可以使用更多的括号来帮助Ruby解析代码。我已经更新了我的问题
expect(....).to eq(
  .....
)
expect(
  ....
).to eq(.....)
expect(
  ....
).to eq(
  .....
)
expect(...).to \
  eq(...)