[英]Jmockit autowire dependendency with mocks injected
我遇到的情況是我有某些 mocking 和實用程序(不是 static 方法,而是依賴於模擬的某些操作)。
可以這樣說,
class MyReusableClassForTesting {
@Mocked
private ClassA attribute;
// And some more @Mocked and methods that are relying on the mocks.
}
我想在注入模擬的測試類中使用MyReusableClass
的實例。
class MyTestClass {
// Need this be a real instance with mocks injected inside it
private MyReusableClassForTesting instance;
}
我嘗試了@Mocked
、 @Capturing
、 @Tested
和@Injectable
。 它們似乎都不起作用。 任何想法,我怎樣才能使它與Jmockit
一起工作?
你通常會這樣做:
class MyTestClass {
// Need this be a real instance with mocks injected inside it
@Tested
public MyReusableClassForTesting instance;
}
如果“實例”構造函數采用 arguments,或者如果它有自動裝配的東西,則在測試類級別添加(可能是多個):
@Injectable
protected ClassA attribute;
為了確保 JMockit 正常工作,我通常會添加一個簡單的測試
@Test
public void testCtor() {
assertNotNull(instance);
}
JMockit 將負責創建基於@Tested 和@Injectable 的“實例”。 此測試失敗的唯一方法是 JMockit 不工作——即您忘記添加 javaagent。 您通常需要在構建腳本(build.gradle 或 pom.xml)中以及從 IDE 手動運行測試時使用 javaagent。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.