我有一种情况,在这种情况下,我有某些模拟和实用程序(不是静态方法,而是依赖于模拟的某些操作)。
这样说吧
class MyReusableClassForTesting {
@Mocked
private ClassA attribute;
// And some more @Mocked and methods that are relying on the mocks.
}
我想在我的测试类中使用MyReusableClass
的示例,并注入mock。
class MyTestClass {
// Need this be a real instance with mocks injected inside it
private MyReusableClassForTesting instance;
}
我尝试了@Mocked
,@Capturing
,@Tested
和@Injectable
。它们似乎都不起作用。有什么想法吗,我如何才能让这个在Jmockit
上起作用呢?
1条答案
按热度按时间vc9ivgsu1#
您通常只需执行以下操作:
如果'instance'构造函数接受参数,或者如果它有Autowired的东西,那么在测试类级别添加(可能是多个):
为了确保JMockit正常工作,我通常会添加一个简单的测试
JMockit将负责创建基于@Tested和@Injectable的“示例”。此测试失败的唯一原因是JMockit不工作-即您忘记添加javaagent。您通常在构建脚本(build.gradle或pom.xml)中以及从IDE手动运行测试时都需要javaagent。