当我使用以下测试时,我收到警告:
警告: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();
}
}
有任何想法吗?
关于链接,接受的答案已经有点过时了,因此值得直接提及各种解决方案。
要解决此问题,请执行以下操作之一:
1 - 指定javaagent
将其添加到您的 JUnit 执行环境(针对您的版本):
-javaagent:path/to/your/jmockit/jmockit-0.998.jar
2 - 在Maven中配置Surefire插件以避免它
将以下内容添加到您的 Maven 配置中(选择您自己的版本)
<!-- 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>
3 - 使用 JUnit @RunWith 注释
在每个测试类上添加此 JUnit 运行程序注释
@RunWith(JMockit.class)
public class ExampleTest {}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)