试图将 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));
}
}
我真的很奇怪为什么要创建一个子类,而不是仅仅使用现有的类并将 3 个模拟作为参数传递给其现有的构造函数。
添加回答
举报
0/150
提交
取消