1

我只是想让 PowerMock/EasyMock 工作。我正在使用 PowerMock 1.5:

    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-easymock-release-full</artifactId>
        <version>1.5</version>
        <type>pom</type>
    </dependency>

这是我的代码:

    String text = PowerMock.createMock(String.class);

就是这样。当我运行程序时,我得到:java.lang.IllegalArgumentException: java.lang.String is not an interface

我试过做:

    String text = EasyMock.createMock(String.class);

并使用 PowerMock 的 RunWith 注释,但无论我尝试什么类,我总是得到这个异常。我究竟做错了什么?

4

3 回答 3

4

此版本的 EasyMock 可以正常工作:

<dependency>
  <groupId>org.easymock</groupId>
  <artifactId>easymock</artifactId>
  <version>3.1</version>
</dependency>

您还应该看看如何模拟系统类:

http://code.google.com/p/powermock/source/browse/trunk/modules/module-test/mockito/junit4/src/test/java/samples/powermockito/junit4/system/SystemClassUserTest.java?spec= svn1714&r=1714

于 2013-02-14T20:22:54.277 回答
0

只要我问....使用了错误版本的easymock。需要升级到 3.0 版

String 也是一个最终类,因此它不适用于字符串...

于 2013-02-14T20:16:36.357 回答
0

低于 3.0 的 EasyMock 版本会抛出这个错误。升级您的 EasyMock 版本。

于 2013-12-02T16:37:03.647 回答