Kotlin JUnit5 test 类 是否应该包含包语句?
Should Kotlin JUnit5 test classes contain package statements?
我正在编写一个 Kotlin 程序,根据惯例,它位于 src/main/kotlin/mypackage/*.kt
中,每个源文件都包含 package mypackage
。
我使用 IntelliJ IDEA 选项创建了一个测试 class、FooBarTest
,它位于 src/test/kotlin/mypackage/FooBarTest.kt
。到目前为止,还不错。
然而,令我惊讶的是,FooBarTest.kt
不 包含 package mypackage
。这意味着它测试的东西需要使用单独的 import
语句显式导入。
IntelliJ IDEA 是不是告诉我一个惊人的事实,即与主源文件不同,测试源文件不应该指定包?
还是说错了,漏掉了一个应该有的package语句,我应该自己手写package mypackage
语句?
我认为 IDEA 犯了一个错误——或者至少,没有它可能提供的帮助。
当然,没有真正的必要性 测试 类 与被测试的 类 在同一个包中。但根据我的经验,这很有意义:它们更容易找到,而且正如您所说,它避免了很多 import
语句。
它还使文件层次结构与包层次结构保持一致。同样,虽然在 Kotlin 中没有绝对必要,但它确实使文件更容易找到并避免意外冲突,我还没有找到偏离它的理由。
我正在编写一个 Kotlin 程序,根据惯例,它位于 src/main/kotlin/mypackage/*.kt
中,每个源文件都包含 package mypackage
。
我使用 IntelliJ IDEA 选项创建了一个测试 class、FooBarTest
,它位于 src/test/kotlin/mypackage/FooBarTest.kt
。到目前为止,还不错。
然而,令我惊讶的是,FooBarTest.kt
不 包含 package mypackage
。这意味着它测试的东西需要使用单独的 import
语句显式导入。
IntelliJ IDEA 是不是告诉我一个惊人的事实,即与主源文件不同,测试源文件不应该指定包?
还是说错了,漏掉了一个应该有的package语句,我应该自己手写package mypackage
语句?
我认为 IDEA 犯了一个错误——或者至少,没有它可能提供的帮助。
当然,没有真正的必要性 测试 类 与被测试的 类 在同一个包中。但根据我的经验,这很有意义:它们更容易找到,而且正如您所说,它避免了很多 import
语句。
它还使文件层次结构与包层次结构保持一致。同样,虽然在 Kotlin 中没有绝对必要,但它确实使文件更容易找到并避免意外冲突,我还没有找到偏离它的理由。