猿问

将 Kotlin mockito 测试代码复制到 Java

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

)


UYOU
浏览 108回答 1
1回答

PIPIONE

您的 Kotlin 代码定义了一个子类 ClassXTest,它有一个不带参数的构造函数,并使用 3 个模拟调用超级构造函数。所以如果你想在 Java 中使用相同的方法,你还需要一个不带参数的构造函数并使用 3 个模拟调用超级构造函数:public class ClassXTest extends ClassX {    public ClassXTest() {        super(mock(ObjectA.class), mock(ObjectB.class), mock(ObjectC.class));    }}我真的很奇怪为什么要创建一个子类,而不是仅仅使用现有的类并将 3 个模拟作为参数传递给其现有的构造函数。
随时随地看视频慕课网APP

相关分类

Java
我要回答