Specs2确实提供了containsAllOf
匹配器,但我无法按照我想要的方式工作。我有两个字符串A和B,我想测试B中出现的所有字符都出现在A中。
到目前为止,我最好的尝试是
A.toCharArray.toSeq must containAllOf(B.toCharArray.toSeq)
但这失败了,如
之类的错误WrappedArray( a ,b,c,d,...)不包含S, a ,V,H,I,...和 不得包含...
如何为此方案编写工作规范?
答案 0 :(得分:0)
这不使用containsAllOf但应该有效:
/* turn A into a Map for quick contains lookup */
val theAs = A.map(x=> (x,x)).toMap
/* if resulting list has length greater than 0,
* then there is something in A that is not in B*/
B.filterNot(theAs.contains).length must === 0
答案 1 :(得分:0)
目前,我选择了这个变种:
B.toSeq.map(c => A must contain(c))
我仍然愿意接受建议,但如果没有更清洁的解决方案,我可能(第一次)回答我自己的问题。
或者这是我怀疑Specs2测试一个东西的情况之一,当它实际上没有?