我尝试测试用例时,我的rx链应该抛出异常,但遇到了问题。当我尝试调用assertError(error)
时,它说没有发现错误。下面是一个示例:
fun isAvailable(): Single<String> {
return mapper.getSymbol().map { symbol ->
if (repository.isAvailable(symbol)) {
symbol
} else {
throw Exception("Symbol is not available")
}
}
}
在测试中,我模拟仓库返回false,然后做如下操作:
val error = Exception("Symbol is not available")
whenever(mapper.getSymbol()).thenReturn(
Single.just(
symbol
)
)
whenever(repository.isAvailable(symbol)).thenReturn(false)
val test = symbolsRepository.isAvailable().test()
test.await()
.assertError(error)
但是,当我运行测试时,我发现错误不存在(闩锁= 0,值= 0,错误= 1,完成= 0),原因是:java.lang.Exception:符号不可用
1条答案
按热度按时间j91ykkif1#
正如@gpunto所说,
assertError
在Exception
上进行相等检查,在标准Java中,除了引用相等之外,默认情况下不会实现这些检查。您可以使用
assertError
的其他两个多载来检查例外状况类别及其消息: