我需要做什么来传入containsTheSameElementsAs作为java.util.List参数的参数
例如:
class Foo() {
void javaList(List<Bar> bars) = ???
}
使用以下代码运行specs2 SpecificationWithJunit Test:
val foo = mock[Foo]
...
got {
one(foo).javaList(containTheSameElementsAs(SOME_LIST))
}
现在我收到了错误:
发现:org.specs2.matcher.Matcher [Traversable [Bar]]
必需:java.util.List [Bar]
答案 0 :(得分:1)
你需要“匹配”匹配器成为Matcher[java.util.List[Bar]]
,如下所示:
import scala.collection.JavaConversions._
class Foo {
def javaList(bars: java.util.List[Int]) = bars
}
val foo = mock[Foo]
foo.javaList(java.util.Arrays.asList(1, 2))
got {
one(foo).javaList(containTheSameElementsAs(Seq(1, 2)) ^^ ((_: java.util.List[Int]).toList))
}
((_: java.util.List[Int]).toList)
部分转换匹配器参数,使其具有匹配器所期望的类型。