В моих тестах Kotlin JUnit я хочу запускать/останавливать встроенные серверы и использовать их в своих тестах.
Я попытался использовать аннотацию JUnit @Before
для метода в моем тестовом классе, и он отлично работает, но это неправильное поведение, поскольку он запускает каждый тестовый пример, а не только один раз.
Поэтому я хочу использовать аннотацию @BeforeClass
для метода, но добавление ее к методу приводит к ошибке, указывающей, что она должна быть статическим методом. У Котлина нет статических методов. И тогда то же самое относится к статическим переменным, потому что мне нужно сохранить ссылку на встроенный сервер для использования в тестовых случаях.
Итак, как мне создать эту встроенную базу данных только один раз для всех моих тестовых случаев?
class MyTest {
@Before fun setup() {
// works in that it opens the database connection, but is wrong
// since this is per test case instead of being shared for all
}
@BeforeClass fun setupClass() {
// what I want to do instead, but results in error because
// this isn't a static method, and static keyword doesn't exist
}
var referenceToServer: ServerType // wrong because is not static either
...
}
Примечание: этот вопрос намеренно написан автором и автору (Автоответчик), так что ответы на часто задаваемые вопросы Темы Котлина присутствуют в SO.