当前位置: 首页 > 知识库问答 >
问题:

EasyMock是否支持将多个重载方法添加到createMockBuilder中

濮阳振海
2023-03-14

我正在处理使用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中的几个重载方法?

共有1个答案

章昱
2023-03-14

我想您在运行时遇到了这个异常:

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及其周边产品都是基于多进程单线程的。

  • 1、mybatis 是否支持延迟加载? 延迟加载其实就是讲数据加载时机推迟,比如推迟嵌套查询的时机。 延迟加载可以实现先查询主表,按需实时做关联查询,返回关联表结果集,一定程度上提高了效率。 mybatis仅支持关联对象association和关联集合对象collection的延迟加载,association是一对一,collection是一对多查询,在mybatis配置文件中可以配置lazylo