0
所以基本上我想創建一個mockito單元測試,它返回一個泛型類型,對於我來說驗證該方法返回特定的對象類型是非常重要的。任何想法或提示都會有所幫助。Mockito - Return通用類型(多個)
class Example {
public AnotherClass<T> generateExampleType(String args) {
return new AnotherClass<T> (args);
}
}
class Another {
String method1(Type1 a) {
//
}
String method2(Type2 a) {
//
}
}
class ClassUnderTest{
public void methodUnderTest() {
// code
AnotherClass<Type1> obj1 = helper.<Type1>generateExampleType("abc");
AnotherClass<Type2> obj2 = helper.<Type2>generateExampleType("def");
String one = another.method2(obj2);
String two = another.method1(obj1); // this fails as part of verify in unit test
// code
}
}
測試
when(helper.<Type1>generateExampleType(anyString()).thenReturn(Obj1Mock);
when(helper.<Type2>generateExampleType(anyString()).thenReturn(Obj2Mock);
verify(another).method2(Obj2Mock);
verify(another).method1(Obj1Mock); // This fails expected Obj1, actually passed Obj2
兩個OBJ1和OBJ2被用作在相同的工作流程的其他方法調用的一部分。然而,總的Mockito默認爲最後創建(OBJ2在這種情況下)和我的單元測試失敗
/*
Expected class - Type1
Actually invoked - Type2
*/
爲什麼要返回一個泛型類型? –
'generateExampleType'方法沒有類型參數。 – Bubletan
@Tim - 我想返回一個通用的,它是一個巨大的工作流程的一部分 – NirmalGeo