gpt4 book ai didi

android - 如何检查一个方法是否没有被 mockk 调用?

转载 作者:行者123 更新时间:2023-12-04 23:53:51 29 4
gpt4 key购买 nike

我需要检查我的单元测试中是否没有调用方法。这是我做的一个示例测试,它检查该方法是否被调用并且它工作得很好:

@Test
fun viewModel_selectDifferentFilter_dispatchRefreshAction() {
val selectedFilter = FilterFactory.make()
val event = GroceriesAisleFiltersUiEvent.SelectFilter(
filter = selectedFilter,
refreshListAction = mockk()
)
every { event.refreshListAction(selectedFilter) } just runs
viewModel.dispatchViewAction(event)
verify { event.refreshListAction(selectedFilter) }
}
为此,我使用了 mockk 的 verify检查方法是否被调用的函数。
有没有办法检查,使用 mockk ,这个方法没有被调用?简而言之,我需要使用此检查代替注释来完成以下代码:
@Test
fun viewModel_selectSameFilter_notDispatchRefreshAction() {
val selectedFilter = viewModel.viewState.value.selectedFilter
val event = GroceriesAisleFiltersUiEvent.SelectFilter(
filter = selectedFilter,
refreshListAction = mockk()
)
every { event.refreshListAction(selectedFilter) } just runs
viewModel.dispatchViewAction(event)
// TODO: verify if method's not invoked
}

最佳答案

如果你想验证你的方法没有被调用,你可以验证它被调用了 0 次:

verify(exactly = 0) { event.refreshListAction(any()) } 
或者,在这种情况下,您的 event.refreshListAction是模拟,您可以等效地编写以下内容来验证模拟根本没有被调用:
verify { event.refreshListAction wasNot called }

关于android - 如何检查一个方法是否没有被 mockk 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71680808/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com