【问题标题】:Mocking classes in Play for ScalaPlay for Scala 中的模拟类
【发布时间】:2016-12-21 22:28:01
【问题描述】:
我正计划使用 ScalaTest 来测试 Play Controller,但我还没有决定是否应该使用 Mockito 或 ScalaMock 进行模拟。 Play 网站提到了 Mockito,但它似乎专注于 Java。在 Scala 中开发应用程序时,ScalaMock 看起来更自然,但是从我的阅读来看,与 Mockito 相比,它似乎支持更少的测试场景,而且它也不太成熟。有什么建议吗?
【问题讨论】:
标签:
scala
playframework
mockito
playframework-2.5
scalamock
【解决方案1】:
Play 网站提到了 Mockito,但它似乎专注于 Java。
Mockito 是为 Java 编写的,但这并不能阻止它成为 Scala 项目中非常有效的工具,而且我相信它在 Scala 社区中得到了相当广泛的使用。
我两者都用过,但当我有选择的时候倾向于使用 Mockito,因为我更倾向于更喜欢语法 - 但这更多是个人喜好。 Mockito 的存在时间比 ScalaMock 长得多,并且由于它的贡献者基础更大,因此维护得更加积极。
先玩一下两者,否则如果您不确定我个人会选择 Mockito。
我确实经常尝试检查我的设计,以便检查我是否really need those mocks - 我相信你知道这是一个很好的做法。
【解决方案2】:
如果您认为缺少某些材料,请随时查看 ScalaMock 上的功能请求。
ScalaMock 的一个好处可能是更精简的语法,尤其是在模拟 scala.Function* 类型时。