问题描述
我的测试类中有几个测试在一起运行时失败了。当我单独运行它们时,它们都运行良好。所以我在多个测试中重用的模拟值肯定存在一些冲突。
示例如下:
@ExtendWith(SpringExtension::class)
@AutoConfiguremockmvc(addFilters = false)
class BerryStorageTest {
private lateinit var BerryStorage: BerryStorage
private lateinit var dataB: DataB
@BeforeEach
fun setup() {
dataK = mock()
whenever(dataB.berries).thenReturn(ConcurrentHashMap())
this.BerryStorage = BerryStorage(dataB)
}
@Test
fun `when adding additional Berry to berries storage,number of berries increased`() {
// reset(dataB)
// dataB = mock()
whenever(dataB.berries).thenReturn(berriesMapMock)
BerryStorage.addBerry(additionalBerryMock)
val resultBerries = dataB.berries
assertthat(resultBerries.size).isEqualTo(2)
}
// Some other tests...
}
我错过了什么?我可以通过调试清楚地看到,当测试开始时,模拟值中有 2 个浆果,而不是 1 个值,因为它是在 berriesMapMock 中初始化的。所以断言失败,因为结果总共有 3 个浆果,而不是 2 个。其中一个来自另一个单元测试......
我有 @BeforeEach 方法来重新初始化模拟,但问题在我的几个测试中仍然存在。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)