AS 4.0.2
RxBindings 4.0.0
我已经编写了一个单元测试来测试是否调用了使用 jakeWartons rxBindings 的 PublishRelay 接受
这是我正在测试的代码片段
private val checkStoresRelay: Relay<Unit> = PublishRelay.create<Unit>()
private fun onCheckStockTapped(view: View) {
view.textViewCheckStock
.clicks()
.debounce(TIME_OUT, TimeUnit.MILLISECONDS)
.subscribeBy(
onNext = checkStoresRelay::accept,
onError = { Timber.e(it, it.localizedMessage) }
)
}
在测试课中,我正在执行以下操作。将textViewCheckStock.performClick()
触发,我检查 checkStoresRelay.accept(Unit) 是否已被调用。
但我不确定availableDeliveryOptionsModel.checkStoresRelay.accept(Unit)
因为我认为我不应该在测试中调用它。但是,如果我删除它,测试将失败。只是想知道测试这个的最佳方法是什么?
@Test
fun `should check stores when checkStock is tapped`() {
// Arrange
val viewHolder = createViewHolder()
availableDeliveryOptionsModel.bind(viewHolder)
val actual = availableDeliveryOptionsModel.checkStoresRelay.test()
// Act
availableDeliveryOptionsModel.checkStoresRelay.accept(Unit)
viewHolder.itemView.textViewCheckStock.performClick()
// Assert
actual.assertValue(Unit)
}
非常感谢您的任何建议,