在Akka流中模拟源

问题描述 投票:0回答:1

我有一个包装器类AwsS3Bucket,在调用该类时,它返回源Source[ByteString, NotUsed]。在我的单元测试用例中,我模拟了此客户端并执行了必要的断言。

val source = Source.fromIterator(() => List(ByteString("some string")).toIterator)
when(awsS3Bucket.getSource(any[String])).thenReturn(source)

但是,现在我要测试错误情况,其中我想让getSource方法引发异常。我尝试了以下代码,

val error = new RuntimeException("error in source")
when(awsS3Bucket.getSource(any[String])).thenReturn(error)

但是它给了我一个编译问题,说那是>>

Cannot resolve overloaded method thenReturn

任何人都可以让我知道在akka流中的Source中返回异常的正确方法。

我有一个包装器类AwsS3Bucket,当调用该类时,将返回源Source [ByteString,NotUsed]。在我的单元测试用例中,我模拟了此客户端并执行了必要的断言。 val source = ...

scala mockito akka-stream
1个回答
0
投票

您必须使用thenThrow(new RuntimeException("error in source"))存根Exception

© www.soinside.com 2019 - 2024. All rights reserved.