当我使用以下测试时,我得到一个警告:
警告:JMockit已按需初始化,这可能导致某些测试失败; 请查看文档以获得初始化的更好方法.
这是我的测试实现:
package test;
import static mockit.Mockit.*;
import junit.framework.TestCase;
import mockit.*;
import mockit.integration.junit4.*;
import org.junit.*;
import org.junit.runner.*;
import filip.ClassUnderTest;
import filip.LowerClass;
@RunWith(JMockit.class)
public class MockTest extends TestCase {
@MockClass(realClass = LowerClass.class)
public static class LowerClassMock {
@Mock(invocations = 1)
public String doWork() {
return "Mockowanie dziala :D";
}
}
@Before
public void setUp() { setUpMocks(LowerClassMock.class); }
@After
public void tearDown() { tearDownMocks(); }
@Test
public void testJMockit() {
ClassUnderTest classUnderTest = new ClassUnderTest();
classUnderTest.print();
}
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Gar*_*owe 40
对于链接,已接受的答案已经过时了,因此值得直接提及各种解决方案.
要解决此问题,请执行以下操作之一:
1 - 指定一个javaagent
将此添加到您的JUnit执行环境(适用于您的版本):
-javaagent:path/to/your/jmockit/jmockit-0.998.jar
Run Code Online (Sandbox Code Playgroud)
2 - 在Maven中配置Surefire插件以避免它
将以下内容添加到Maven配置中(选择您自己的版本)
Run Code Online (Sandbox Code Playgroud)<!-- JMockit must be before JUnit in the classpath --> <dependency> <groupId>mockit</groupId> <artifactId>jmockit</artifactId> </dependency> <!-- Standard unit testing --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency>
确保您的Surefire插件配置如下(对于您的特定版本):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.3</version>
<configuration>
<argLine>-javaagent:${settings.localRepository}/mockit/jmockit/0.998/jmockit-0.998.jar</argLine>
<useSystemClassLoader>true</useSystemClassLoader>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
3 - 使用JUnit @RunWith注释
在每个测试类上添加此JUnit runner注释
@RunWith(JMockit.class)
public class ExampleTest {}
Run Code Online (Sandbox Code Playgroud)
Eti*_*veu 17
据我了解,当一个人试图调用JMockit方法时,抛出此异常,而JMockit尚未正确初始化.
确保遵循JMockit安装说明,尤其是第3点和第4点.如果JMockit jar位于类路径中的JUnit jar 之后,则可能会导致问题.
| 归档时间: |
|
| 查看次数: |
39337 次 |
| 最近记录: |