首页 > 解决方案 > Kotlin JUnit5 测试类是否应该包含包语句?

问题描述

我正在编写一个 Kotlin 程序,根据惯例src/main/kotlin/mypackage/*.kt,每个源文件都包含package mypackage.

我使用 IntelliJ IDEA 选项创建了一个测试类FooBarTest,它位于src/test/kotlin/mypackage/FooBarTest.kt. 到现在为止还挺好。

然而,令我惊讶的是FooBarTest.kt不包含. 这意味着它测试的东西需要使用单独的语句显式导入。package mypackageimport

IntelliJ IDEA 是否告诉我一个令人惊讶的事实,即与主源文件不同,测试源文件不应该指定包?

还是它犯了一个错误,省略了应该存在的包装声明,我应该继续package mypackage手动输入声明?

标签: kotlinintellij-ideajunit5

解决方案


我认为 IDEA 犯了一个错误——或者至少,它的帮助没有那么大。

当然,测试类与测试类在同一个包中并没有真正的必要性。但根据我的经验,这很有意义:它们更容易找到,而且正如你所说,它避免了很多import陈述。

它还使文件层次结构与包层次结构对齐。同样,虽然在 Kotlin 中没有绝对必要,但它确实使文件更容易找到并避免意外的冲突,而且我还没有找到不同的理由。


推荐阅读