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