Должны ли Kotlin JUnit5 тестовые классы содержать операторы пакета? - PullRequest
0 голосов
/ 02 мая 2020

Я пишу Kotlin программу, которая в соответствии с соглашением живет в src/main/kotlin/mypackage/*.kt с каждым исходным файлом, содержащим package mypackage.

Я использовал опцию IntelliJ IDEA для создания тестового класса, FooBarTest, который живет в src/test/kotlin/mypackage/FooBarTest.kt. Пока все хорошо.

Однако, к моему удивлению, FooBarTest.kt не содержит , не содержит package mypackage. Это означает, что тестируемые объекты необходимо будет импортировать явно с помощью отдельных операторов * 1013.

Говорит ли IntelliJ IDEA удивительную правду, что в отличие от основных исходных файлов тестовые исходные файлы не должны указывать пакет?

Или он совершает ошибку, опуская оператор пакета, который должен быть там, и я должен на go опередить и вставить оператор package mypackage вручную?

1 Ответ

1 голос
/ 02 мая 2020

Я думаю, IDEA делает ошибку - или, по крайней мере, менее полезна, чем могла бы.

Конечно, нет реальной необходимости , чтобы тестовые классы были в одном пакете как проверенные классы. Но по моему опыту, это имеет смысл: их легче найти, и, как вы говорите, избегать много, если import операторов.

Это также приводит иерархию файлов в соответствие с иерархией пакетов. Опять же, хотя в Kotlin нет абсолютной необходимости в этом, это облегчает поиск файлов и позволяет избежать неожиданных столкновений, и я пока не нашел причины отклоняться от этого.

...