gpt4 book ai didi

java - 将 Kotlin mockito 测试代码复制到 Java

转载 作者:行者123 更新时间:2023-11-29 04:07:32 25 4
gpt4 key购买 nike

尝试将 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()
)

最佳答案

您的 Kotlin 代码定义了一个子类 ClassXTest,它有一个不带参数的构造函数,并使用 3 个模拟调用 super 构造函数。

因此,如果您希望在 Java 中实现相同的功能,您还需要一个不带参数的构造函数并使用 3 个模拟调用 super 构造函数:

public class ClassXTest extends ClassX {
public ClassXTest() {
super(mock(ObjectA.class), mock(ObjectB.class), mock(ObjectC.class));
}
}

我真的很奇怪为什么要创建一个子类,而不是仅仅使用现有的类并将 3 个模拟作为参数传递给其现有的构造函数。

关于java - 将 Kotlin mockito 测试代码复制到 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57541401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com