簡體   English   中英

JMockit:驗證測試對象的自我方法調用

[英]JMockit: verify self method invocations of tested object

我有以下課程需要編寫單元測試。 我需要自己驗證MyClass自己的方法的調用。

public class MyClass {
    public void init() {
    }

    public void testMethod() {
    }
}

我編寫了以下測試類來測試MyClass

public class MyClassTest {
    @Tested
    MyClass myClass;

    @Test
    public void initTest() {
//        new Expectations(myClass) {{
//        }};
        myClass.init();
        new Verifications() {{
            myClass.testMethod();
        }};
    }
}

可以看出, init()沒有調用testMethod() ,但是令我驚訝的是,上述測試用例成功了。

如果通過取消注釋上面的空的Expectations塊來部分模擬myClass ,則測試將失敗,並出現Missing invocation錯誤,這是預期的。 因此,似乎必須部分模擬測試對象。

但是,部分模擬復雜類的測試對象會在測試時引發各種異常,這很難調試,因為Intellij IDEA中的斷點在這種情況下不起作用。

那么,這里可能出了什么問題? 或者,是否不應該驗證測試對象本身中方法的調用?

JMockit無法驗證非模擬類上的方法調用。 在上述示例中,使用注釋掉的Expectations完全不模擬myClass對象,並且驗證實際上無法驗證其上的方法是否已被調用。 嚴格來說,這不是因為您正在驗證@Tested對象; 如果創建新的List並嘗試將其方法之一放入Verifications則會遇到相同的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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