问题描述
我正在运行以下测试代码,但以某种奇怪的方式我不明白它没有清除两个测试之间的模拟。
我在第二次测试中得到 environmentAsrequired
作为 repo.getClusterEnvironment(environmentName)
的返回,而不是抛出 noresultException()
这会导致第二次测试失败,因为我断言的异常没有被抛出.
我已经验证过,并且在测试之间调用了用@BeforeEach 注释的方法。
有人知道吗?
class ConfigUtilsTest {
@BeforeEach
fun start() {
MockKAnnotations.init(this)
val testModule = module() {
single { mockk<Repository>() }
single { mockk<AdminClient>() }
}
startKoin { modules(testModule) }
}
@AfterEach
fun stop() {
stopKoin()
unmockkAll()
}
@Test
fun `fetchOrCreateCluster creates the cluster if it is not on db but all required attributes are`() {
val environmentName = "environmentForCluster"
val clusterName = "NameForCluster"
val clusterURL = "UrlForCluster"
val environmentAsrequired = ClusterEnvironment(0,environmentName)
val expectedResult = Cluster(
clusterURL,clusterName,environmentAsrequired,)
val repo = get(Repository::class.java)
every { repo.getCluster(clusterURL) } throws noresultException()
every { repo.getClusterEnvironment(environmentName) } returns environmentAsrequired
fetchOrCreateCluster(
clusterName,environmentName,clusterURL
) shouldBe expectedResult
}
@Test
fun `fetchOrCreateCluster throws InvalidConfigException creating cluster if required attribute (environment) is not on DB`() {
val clusterName = "NameForCluster"
val clusterURL = "UrlForCluster"
val repo = get(Repository::class.java)
every { repo.getCluster(clusterURL) } throws noresultException()
every { repo.getClusterEnvironment(environmentName) } throws noresultException()
shouldThrow<InvalidConfigException> {
fetchOrCreateCluster(
clusterName,clusterURL
)
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)