簡體   English   中英

注入模擬的 Jmockit 自動裝配依賴性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM