首页 > 解决方案 > IntelliJ UnitTests Kotlin 和 Java 同名

问题描述

我们大学有一个项目,他们为我们创建了空的 Java 和 Kotlin 类,以添加我们的代码和一些单元测试,以检查我们是否完成了作业。我已经被放在 Kotlin 类中,因此必须解决 Kotlin 中的问题并忽略 Java。我现在的问题是 UnitTests 执行 Java 代码而不是 Kotlin。

例如:Java 类:

package string;
public class Arrow {

    public static String arrow(int length, boolean doubleEnded, boolean doubleLine) {
        // TODO Implement the method
        return "java";
    }
}

Kotlin 类:

    @file:JvmName("Arrow")

package string

// TODO Implement the function
fun arrow(length: Int, doubleEnded: Boolean, doubleLine: Boolean): String{
return "kotlin";
}

单元测试和结果:

package string;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

class ArrowTest {

    static final int NBR_TESTS = 20;

    @Test
    void arrow0() {
        Assertions.assertEquals("", Arrow.arrow(0, true, true));
        Assertions.assertEquals("", Arrow.arrow(0, false, true));
        Assertions.assertEquals("", Arrow.arrow(0, true, false));
        Assertions.assertEquals("", Arrow.arrow(0, false, false));
    }
}


org.opentest4j.AssertionFailedError: 
Expected :
Actual   :java

我该怎么做才能让 UnitTests 执行 Kotlin 代码而不是 Java?他们告诉我们,我们不应该改变测试中的任何东西。

标签: mavenkotlinintellij-idea

解决方案


正如@user3159253 评论更改 sourceDirectory 为我所做的那样。我打开了模块设置并删除了 Java 作为源并添加了 Kotlin。


推荐阅读