我需要檢查我的單元測驗中是否沒有呼叫方法。這是我做的一個示例測驗,它檢查該方法是否被呼叫并且它作業得很好:
@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
}
uj5u.com熱心網友回復:
如果你想驗證你的方法沒有被呼叫,你可以驗證它被呼叫了 0 次:
verify(exactly = 0) { event.refreshListAction(any()) }
或者,在這種情況下 yourevent.refreshListAction是模擬,您可以等效地撰寫以下內容來驗證模擬根本沒有被呼叫:
verify { event.refreshListAction wasNot called }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/452772.html
下一篇:存根吸氣劑,而不僅僅是設定值
