我正在处理使用EasyMock
模拟类的现有测试用例。我重载了一个无参数的方法,这样现在就存在一个方法来获取字符串。例如:
public class HelloClass {
// This method always existed.
public String methodHello() {
...
}
// This method is new; it overloads the methodHello() method.
public String methodHello(String msg) {
...
}
}
在测试类中,HelloClass被嘲弄。因此,我添加了重载方法,这样我们就有了声明:
public static HelloClass mockHelloClass = createMockBuilder(HelloClass.class)
.addMockedMethod("methodHello")
.addMockedMethod("methodHello", String.class)
.createMock();
然而,当我运行它们时,测试用例失败了。当我将methodHello(String)
方法设置为私有时,测试用例将再次通过。
EasyMock
是否能够处理添加到CreateMockBuilder
中的几个重载方法?
我想您在运行时遇到了这个异常:
java.lang.RuntimeException:名称不明确:多个方法被命名为methodHello
下面是模拟对象应该是的样子:
public static HelloClass mockHelloClass = createMockBuilder(HelloClass.class)
.addMockedMethod("methodHello", new Class[]{}) // you got this one wrong
.addMockedMethod("methodHello", String.class)
.createMock();
您应该清楚地指定要模拟的方法--添加一个模拟的方法,如
AddMockedMethod(“MethodHello”)
并不意味着您在谈论不带参数的重载变体。这是您表示它的方式:
AddMockedMethod(“MethodHello”,新类[]{})
问题内容: public class TestMain { 输出:NullPointerException方法调用 问题答案: 如果有多个重载方法可以使用给定的参数调用(在您的情况下),则编译器将选择最具体的方法。 参见http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12.2.5 您的情况比更为具体,因为Exc
本文向大家介绍vue.js 添加 fastclick的支持方法,包括了vue.js 添加 fastclick的支持方法的使用技巧和注意事项,需要的朋友参考一下 fastclick:处理移动端click事件300毫秒延迟 1、兼容性 iOS 3及更高版本的移动Safari iOS 5及更高版本的Chrome Android上的Chrome(ICS) Opera Mobile 11.5及以上版本 An
VisualStudio为window对象内置了大多数typescript定义,因为它们大多数都可以工作。但是,“window.chrome”没有定义。如何将其添加到现有的typescript定义中,以便让Visual Studio进行编译?
问题内容: 我正在使用Spring框架为基于Web的应用程序设计一个插件系统。插件是classpath上的jar。这样我就能获得诸如jsp之类的资源,请参见下文 到目前为止,一切都很好。但是我对messageSource有问题。在我看来,ReloadableResourceBundleMessageSource#setBasename不通过“ classpath :” 支持* 多个类路径。如果仅使
Workerman有一个依赖pthreads扩展的MT多线程版本,但是由于pthreads扩展还不够稳定,所以这个Workerman多线程版本已经不再维护。 目前Workerman及其周边产品都是基于多进程单线程的。
问题内容: 我有这样的ES文档。 现在我想在此文档中添加一个新的“注释”,最后该文档将是 我不想在每次追加过程中都提供现有的“ comments”对象,因此最好是每次向此嵌套字段添加新对象的最佳方法。 我的解决方案: 问题答案: 检查脚本本身中的空字段。如果该字段不存在,则首先创建