为了账号安全,请及时绑定邮箱和手机立即绑定

将 Kotlin mockito 测试代码复制到 Java

将 Kotlin mockito 测试代码复制到 Java

UYOU 2023-06-14 10:32:24
试图将 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 个模拟作为参数传递给其现有的构造函数。


查看完整回答
反对 回复 2023-06-14
  • 1 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信