java - powermock+easymock+testng 用于测试 final类

标签 java unit-testing testng easymock powermock

在我的 pom.xml 中使用这些依赖项

<dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-api-easymock</artifactId>
         <version>1.5.5</version>
    </dependency>
    <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-module-test-easymock-testng</artifactId>
         <version>1.5.5</version>
    </dependency>
    <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-core</artifactId>
         <version>1.5.5</version>
    </dependency>

这是我的代码,其中 Dispute 是 Final 类型的类。

 @PrepareForTest(Dispute.class)
        public void testProcessChargebackUpdates() {
            final List<BraintreeGateway> credentials = new LinkedList<BraintreeGateway>();
            credentials.add(credential);

    //      Dispute dispute = control.createMock(Dispute.class);
            Dispute dispute = PowerMock.createMock(Dispute.class);
}

Gives 无法实例化最终类。

最佳答案

首先你需要这些依赖项:

<dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-module-test-easymock-testng</artifactId>
         <version>1.5.5</version>
    </dependency>
    <dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-module-testng</artifactId>
         <version>1.4.9</version>
    </dependency><dependency>
         <groupId>org.powermock</groupId>
         <artifactId>powermock-core</artifactId>
         <version>1.5.5</version>
    </dependency>

然后你需要在你的类中使用 @Prepare 注释和要模拟的最终类,如下 以及要在类中定义的 getObjectFactory 方法。

@PrepareForTest(Dispute.class)
public void testProcessChargebackUpdates() {
    @ObjectFactory
    public IObjectFactory getObjectFactory() {
        return new PowerMockObjectFactory();
    }
}

关于java - powermock+easymock+testng 用于测试 final类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24703929/

相关文章:

java - 停用 optaplanner 规则

unit-testing - 如何在不破坏封装的情况下使用依赖注入(inject)?

ios - 是否可以在静态方法中 OCMock 类调用?

java - TestNG 中的超时测试

gradle - gradle测试任务的执行顺序

java - 如何将动态参数传递给 testNG.xml 运行多个测试

java - 简单的 Java Json 到数组

java - 如何通过一次检查父标签和子标签来使用sax解析xml?

java - 如何使用更新的行获取 CMD 输入

angular - 如何在 Angular 5 的测试主机中访问指令的属性?