我尝试测试两个数组是否包含相同的元素,而不测试元素的顺序。(Rails 5.2 / Rspec-rails 3.8.2)
重复:
[['a1', 'a2'], ['b1', 'b2']]
[['b2', 'b1'], ['a2', 'a1']]
字符串
我尝试了match_array和contain_exactly,但这只适用于数组的第一级。
tab1 = [['a1', 'a2'], ['b1', 'b2']]
tab2 = [['b1', 'b2'], ['a1', 'a2']]
tab3 = [['a2', 'a1'], ['b2', 'b1']]
tab4 = [['b2', 'b1'], ['a2', 'a1']]
expect(tab1).to match_array tab2 # true
expect(tab1).to match_array tab3 # false
expect(tab1).to match_array tab4 # false
型
有没有匹配器可以做到这一点?或者是一个简单的方法与组合匹配器?谢谢
编辑我找到的解决方案是:
expect(tab1).to contain_exactly(contain_exactly('a1', 'a2'),
contain_exactly('b1', 'b2'))
型
但我想找到这样的东西
expect(tab1).to ....... tab2
型
3条答案
按热度按时间anauzrmj1#
这里的其他答案是不准确的。您应该根据场景使用
contain_exactly
或match_array
匹配器。请参阅https://rspec.info/documentation/3.12/rspec-expectations/hfwmuf9z2#
有两种简单的方法可以实现
字符串
blpfk2vs3#
我想我找到了一个解决方案。感谢评论,如果你认为它并不总是工作。
字符串