試圖將 kotlin 測試代碼復制到 Java??紤]以下現有 kotlin 代碼的類和測試類。open class ClassX( val a: ObjectA, val b: ObjectB, val c: ObjectC) { fun someMethod() {..... }}這是測試之一class ClassXTest : ClassX( a = mock(), b = mock(), c = mock())試圖在 java 中模仿相同的代碼public class ClassX {private ObjectA a;private ObjectB b;private ObjectC c;public ClassX(ObjectA a, ObjectB b, ObjectC c) { this.a = a; this.b = b; this.c = c;}public void someMethod() {...}}對于測試類public class ClassXTest extends ClassX{ public ClassX(ObjectA a, ObjectB b, ObjectC c) { super(a,b,c); }}我的問題是如何在 java 中模仿為 kotlin 中的基類字段設置的 mock(),如下所示。class ClassXTest : ClassX( a = mock(), b = mock(), c = mock())
1 回答

PIPIONE
TA貢獻1829條經驗 獲得超9個贊
您的 Kotlin 代碼定義了一個子類 ClassXTest,它有一個不帶參數的構造函數,并使用 3 個模擬調用超級構造函數。
所以如果你想在 Java 中使用相同的方法,你還需要一個不帶參數的構造函數并使用 3 個模擬調用超級構造函數:
public class ClassXTest extends ClassX {
public ClassXTest() {
super(mock(ObjectA.class), mock(ObjectB.class), mock(ObjectC.class));
}
}
我真的很奇怪為什么要創(chuàng)建一個子類,而不是僅僅使用現有的類并將 3 個模擬作為參數傳遞給其現有的構造函數。
添加回答
舉報
0/150
提交
取消