gpt4 book ai didi

ScalaMock:无法处理参数超过 22 个的方法(目前)

转载 作者:行者123 更新时间:2023-11-28 20:11:04 41 4
gpt4 key购买 nike

Scalamock 拒绝了我的 mock 尝试,说它不支持超过 22 种方法。

原因是因为在我试图模拟的类中总共有超过 22 个方法(2 个是我的,20 多个是混合的(来自 Akka Json 支持))。

有什么方法可以在不重新考虑混合部分的情况下绕过这个限制?

我以这种方式使用它,使用 scalatest 3.0.2 :
重写 val apiClient: ApiClient = mock[ApiClient]
(apiClient.getById _).when(15538).returns("数据")

谢谢!

最佳答案

我假设您实际上并不想测试那些 JSON 和其他混合函数,所以我建议创建一个抽象特征来定义您的新的、可测试的签名并将其混合到您的新类中。这样你就不需要改变你的设计,你的这个 ApiClient 类的客户甚至可以通过使用特征类型完全解耦。

trait MyFunctionality {
def foo(): Unit
def somethingElse(i: Int): Int
}

class ApiClient extends Baseclass with Stuff with MoreStuff with MyFunctionality {
// ...
}

然后

val m = mock[MyFunctionality]
(m.foo _).expects().once()
// etc

这样,您还可以防止在单元测试期间在您的类(或基类)构造函数中运行任何代码。希望对您有所帮助。

关于ScalaMock:无法处理参数超过 22 个的方法(目前),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43362056/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com