ScalaMock 是否支持模拟(伴随)对象和构造函数?
Does ScalaMock support mocking of (companion) objects and constructors?
关于 ScalaMock 模拟(伴随)对象和构造函数的能力,存在一些自相矛盾的说法。页面 ScalaMock step-by-step 指出
它还可以模拟:
- 类
*单例和伴生对象(静态方法)
- 对象创建(构造函数调用)
- 类 带有私有构造函数
- Final 类 和 类 with final 方法
- 运算符(具有符号名称的方法)
- 重载方法
另一方面,roadmap 告诉我:
2016 年第一季度 - ScalaMock 4
一旦 scala.meta 可用,我们计划开始研究 ScalaMock 4。如果 scala.meta 兑现承诺,ScalaMock 4 应该能够模拟任何特征,无论其类型多么复杂。
此外,我们预计它还将支持:
- 改进语法:mockObject.expects.method(arguments) 而不是:(mockObject.method _) expects (arguments)
- 模拟对象创建(构造函数)
- 模拟单例和伴随对象(静态方法)
- 使用 final 方法或私有构造函数模拟 final 类 和 类
那么,什么是正确的呢?当前版本 (ScalaMock 3.2) 是否能够模拟对象和构造函数?
经过更多研究,模拟对象和构造函数似乎曾经受支持,但当前版本不支持。 Mocking of objects should be reintroduced with ScalaMock 4.
关于 ScalaMock 模拟(伴随)对象和构造函数的能力,存在一些自相矛盾的说法。页面 ScalaMock step-by-step 指出
它还可以模拟:
- 类 *单例和伴生对象(静态方法)
- 对象创建(构造函数调用)
- 类 带有私有构造函数
- Final 类 和 类 with final 方法
- 运算符(具有符号名称的方法)
- 重载方法
另一方面,roadmap 告诉我:
2016 年第一季度 - ScalaMock 4 一旦 scala.meta 可用,我们计划开始研究 ScalaMock 4。如果 scala.meta 兑现承诺,ScalaMock 4 应该能够模拟任何特征,无论其类型多么复杂。
此外,我们预计它还将支持:
- 改进语法:mockObject.expects.method(arguments) 而不是:(mockObject.method _) expects (arguments)
- 模拟对象创建(构造函数)
- 模拟单例和伴随对象(静态方法)
- 使用 final 方法或私有构造函数模拟 final 类 和 类
那么,什么是正确的呢?当前版本 (ScalaMock 3.2) 是否能够模拟对象和构造函数?
经过更多研究,模拟对象和构造函数似乎曾经受支持,但当前版本不支持。 Mocking of objects should be reintroduced with ScalaMock 4.