如何将scalamock用于awssdk

jhkqcmku  于 2022-11-09  发布在  Scala
关注(0)|答案(1)|浏览(126)

我有一个函数,它具有以下类型签名:

def post(target: String, partition: String, payload: String): IO[Boolean]

在此函数中,向第三方发出调用,通过awssdk将此数据发送到服务。对于测试,我不希望实际发出这些调用,这将我带到scalamock,但在查看文档时不确定如何做到这一点。
在POST函数中,我在设置凭据后将我的AWS客户端的私有示例用于此服务。此示例上有一个特定的方法负责调用AWS。
如何利用scalamock模拟awssdk来测试我围绕它的代码,而不进行实际的调用?

mutmk8jj

mutmk8jj1#

你有什么特点来定义这种方法吗?然后,您可以使用Scalamock获取它的一个示例,并使其使用您想要的任何值响应post调用。
https://scastie.scala-lang.org/KgJ0kptnRaiteNTWPBzrow

trait MyService {
  def post(target: String, partition: String, payload: String): Future[Boolean]
}

val mockedService = mock[MyService]

(mockedService.post _)
  .expects("a", "b","c")
  .returning(Future.successful(true))
  .once()

mockedService.post("a", "b", "c")

相关问题