获得
The expect syntax does not support operator matchers,
so you must pass a matcher to `#to`.
对于
的代码class_methods.all.should =~ [:bar, :hello]
我想改为
expect(class_methods.all).to =~ [:bar, :hello]
我也试过
expect(class_methods.all).to match [:bar, :hello]
和
expect(class_methods.all).to match ([:bar, :hello])
和
expect(class_methods.all match([:bar, :hello])).to be_true
# this one gives wrong number of arguments
答案 0 :(得分:4)
我认为数组的=~
替换为match_array
。
expect(class_methods.all).to match_array [:bar, :hello]
答案 1 :(得分:1)
subject { class_methods.all }
it { should match_array [:bar, :hello] }
答案 2 :(得分:0)
并且要明确,按https://www.relishapp.com/rspec/rspec-expectations/v/3-0/docs/built-in-matchers,新的expect
语法支持各种比较运算符(例如<
,<=
等)使用be
时,它不支持=~
或==
。 match
方法替换=~
表示字符串和正则表达式,match_array
处理数组的特殊情况(根据其他答案)。