我有一个局部函数 exceptionHandler
它匹配相应的异常并相应地抛出。我应该为你写一个测试用例 NoHostAvailableException
,但我无法使用mocking抛出异常。
我已经做了一个模拟服务器,使嵌入式Cassandra在拉贡下来。
这是部分函数。
private val handleException: PartialFunction[Throwable, Future[List[MonitoringData]]] = {
case noHostAvailableException: NoHostAvailableException => throw new CassandraNotAvailableException(TransportErrorCode
.fromHttp(Error.CassandraNotAvailableErrorCode), Error.ErrorMessageForCassandraNotAvailable)
case _ => throw new TransportException(TransportErrorCode.InternalServerError, Error.ErrorMessageForInternalServerError)
}
这是测试用例。
"not be able to interact with the database in" {
when(mockReadDAO.getData)
.thenThrow(NoHostAvailableException)
assert(thrown.isInstanceOf[NoHostAvailableException])
}
编译器不接受 NoHostAvailableException
作为价值。
1条答案
按热度按时间yrefmtwq1#
注意类型之间的区别
还有一个价值观
在里面
从概念上讲,这类似于类型之间的差异
Int
和价值42
在里面错误的含义
告诉我们我们使用的是一个类型,它的位置是期望值。所以试试看
而不是
因为
NoHostAvailableException
构造函数获取java.util.Map
作为参数,请尝试提供空值java.util.HashMap
就像这样