我正在使用TDD(测试驱动开发)学习Ruby。在Rspec
代码中,我经常看到:
it "return the sum of two different arugments" do
calc = Calculator.new
expect(calc.add(1,2)).to eq(3)
end
通常,在其他语言中,最后一个命令通常会写为eq (expect(calc(1,2)), 3)
或expect(calc.add(1,2)).eq(3)
。
但是在示例中,没有任何内容连接第一个短语expect(calc.add(1,2))
和第二个短语eq(3)
。
所以在Ruby中,这个语法的名称是什么?
答案 0 :(得分:2)
只是可以省略参数周围的一对括号。
expect(calc.add(1, 2)).to eq(3)
是语法糖形式:
expect(calc.add(1, 2)).to(eq(3))
也就是说,eq(3)
是方法to
的参数。
根据@DigitalRoss,它似乎被称为诗歌模式。
答案 1 :(得分:1)
Ruby赞成简洁和快捷方式,也称为糖。其中一个是省略括号。
你也可以省略其他需要它们的(不仅仅是expect
),例如你也可以这样做:
expect(calc.add 1,2).to eq 1
而不是更长的
expect(calc.add(1, 2)).to(eq(3))