【发布时间】:2015-04-08 16:10:34
【问题描述】:
我正在尝试模拟 Spark 上下文以在调用 newAPIHadoopFile 时返回模拟的 RDD。
我设置如下:
val mockedOuterRdd = mock[RDD[(NullWritable, MyProtobuf)]]
mockedSc.newAPIHadoopFile(anyString, anyObject(),classOf[org.apache.hadoop.io.NullWritable],
classOf[MyProtobuf],anyObject()) returns mockedOuterRdd
这在编译器中很好,但是当我运行它时,我得到了
Invalid use of argument matchers!
5 matchers expected, 3 recorded:
-> at ...
This exception may occur if matchers are combined with raw values:
//incorrect:
someMethod(anyObject(), "raw String");
When using matchers, all arguments have to be provided by matchers.
For example:
//correct:
someMethod(anyObject(), eq("String by matcher"));
有没有办法可以将eq(...)(我尝试过但不起作用)之类的东西与classOf[...]一起使用?
我尝试将anyObject 用于类,但它从这些类中推断出 RDD 的类型参数,因此它们必须是正确的。
感谢阅读。
【问题讨论】:
标签: scala apache-spark mockito