我们从大学得到了一个项目,他们为我们创建了空的Java和Kotlin类来添加我们的代码和一些unittest来检查我们是否完成了任务。我被放在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";
}
}
芬兰湾的科特林类:
@file:JvmName("Arrow")
package string
// TODO Implement the function
fun arrow(length: Int, doubleEnded: Boolean, doubleLine: Boolean): String{
return "kotlin";
}
UnitTest and Result:
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
我该怎么做才能让unittest执行Kotlin代码而不是Java?他们告诉我们不应该在测试中改变任何东西。
正如@user3159253评论的那样,改变sourceDirectory为我做了这件事。我打开模块设置,删除Java作为源代码,并添加Kotlin。