我有两个测试类,MyFirstTest和MySecondTest.独立运行每个工作正常.当我同时运行时(在eclipse中选择包含这些文件的测试文件夹,右键单击,以junit运行),MySecondTest失败,因为MyClass在运行其测试时仍然被模拟.MyFirstTest需要模拟MyClass.MySecondTest要求MyClass不被嘲笑.我认为tearDownMocks假设"移除"类.
public class MyFirstTest {
@Before
public void setUp() throws Exception {
Mockit.setUpMocks(MockMyClass.class);
}
@After
public void tearDown() throws Exception {
Mockit.tearDownMocks(MockMyClass.class);
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
Mockit.tearDownMocks(MockMyClass.class);
}
@MockClass(realClass = MyClass.class, stubs = "<clinit>")
public static class MockMyClass {
...
public class MySecondTest {
Run Code Online (Sandbox Code Playgroud)
正确的方法如下所述:模拟类并将其分配给变量。然后,使用该变量,您可以销毁或清除模拟,以便它不会影响任何其他测试用例。
MockUp<PmRequestData> mockpmreq = new MockUp<PmRequestData>() {
@Mock
public Map<String, KPIData> getKpiDataMap() {
return datamap;
}
};
mockpmreq.tearDown();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2444 次 |
| 最近记录: |