最佳答案
在 Kotlin JUnit 测试中,我希望启动/停止嵌入式服务器,并在测试中使用它们。
我尝试在我的测试类中的一个方法上使用 JUnit @Before
注释,它工作得很好,但是这不是正确的行为,因为它运行每个测试用例,而不是只运行一次。
因此,我想在一个方法上使用 @BeforeClass
注释,但是将它添加到一个方法会导致一个错误,即它必须在一个静态方法上。Kotlin 似乎没有静态方法。静态变量也是如此,因为我需要保留对嵌入式服务器的引用,以便在测试用例中使用。
那么,如何为所有测试用例创建一次嵌入式数据库呢?
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
...
}
注: < em > 这个问题是作者(自我回答的问题)有意编写和回答的,所以常见问题的答案都在 SO 中。