【发布时间】:2016-08-31 08:10:08
【问题描述】:
使用 JUnit 测试类-
有一个班级TestAccess.java有
static private TestAccess instance = new TestAccess();
public static TestAccess getTestAccess() {
returns instance;
}
为了测试一个测试类 A.java 使用 JMockit 来模拟 getTestAccess 方法
@Mock
TestAccess mockTestaccess;
@Test
public void testMethod() {
new MockUp<TestAccess>() {
@mockit.Mock
public TestAccess getTestAccess() {
return mockTestaccess;
}
};
TestAccess test=TestAccess.getTestAccess();
}
在另一个班级B.java 我不想使用模拟和调用
TestAccess.java如下
@Test
public void doTest()
{
TestAccess test=TestAccess.getTestAccess();
}
B.java 如果独立运行,则返回真正的TestAccess 实例并正常工作。
然而,在 Maven 运行期间,它甚至在 B.java 中也会失败
TestAccess.getTestAccess() 返回 A.java 中定义的模拟,而不是预期的真实实例。
谁能指导如何解决这个问题。
【问题讨论】:
标签: java unit-testing mockito jmockit