【发布时间】:2019-04-05 19:36:35
【问题描述】:
我有两个案例类A和AHelper
case class AHelper(data: String) {
def getData() = {...} // Complex operation inside
}
case class A(data1: String, data2: String) {
private val aHelper = AHelper(data2) // AHelper instance
def getData() = {data1 + aHelper.getData; ...} // Complex operation inside
}
类 A 具有 AHelper 的实例作为其成员之一。
我只想为 A 编写单元测试,模拟 AHelper
Scala 版本:2.11
【问题讨论】:
-
真实场景中,A和AHelper类都是复杂代码
-
为什么不能做一个简单的类?这会很容易
-
@RamanMishra 制作一个简单的类有助于解决这个问题吗?
-
是的,那么您可以覆盖 getData 并返回您想要的任何内容,只需在测试用例中创建一个新对象 A 并覆盖 getData。因为无论如何 case 类都用于模式匹配,所以我们应该避免在 case 类中使用数据函数。
-
我不想覆盖 a.getData。我想覆盖 aHelper.getData。 a.getData 在实际案例中做得更多
标签: scala unit-testing scalatest