java - 如何使用 EasyMock 隔离同一类中的其他方法

标签 java junit

我有一个方法可以调用同一类中的其他方法,例如:

Class MyClass{
   public int methodA(){
      ...
      methodB()
      ...
   }

   public int methodB(){
      ...
   }
}

我只想测试methodA(),那么如何使用EasyMock隔离methodB()。 我该死的方法是创建一个 MyClass 的假实例并将其注入(inject)到 methodA() 中,如下所示:

public int methodA(MyClass fake){
   ...
   fake.methodB();
   ...
}

并期望它出现在我的测试用例中:

MyClass fake = EasyMock.createMock(MyClass.class);    
EasyMock.expect(fake.methodB()).andReturn(...);

针对这种情况有没有更好的解决方案?

最佳答案

是的:不要使用 EasyMock,而是使用匿名本地类。示例:

public void testXyz throws Exception() {
    MyClass fake = new MyClass() {
        public int methodB(){
            return 12;
        }
    };

    fake.methodA();
}

关于java - 如何使用 EasyMock 隔离同一类中的其他方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3904517/

相关文章:

java - 如何使用 Java 将字符串中的多个单词替换为空格

java - 即时添加 Quartz 源 Java 文件

java - Tomcat 9 上的 SSL Windows 认证错误

java - 使用 ANT 将参数传递给 java 程序

android - 编写单元测试以检查服务是否已启动

java - 使用 Stream...peek() 创建的变量的测试方法

java - 我需要做什么才能使用循环显示最大和最小数字?

java - 如何诱发SwingWorker错误

android - Robolectric 给出了一个异常(exception)

java - JUnit 向测试用例添加额外测试