如何在 scala 中模拟静态函数(对象函数,而不是类函数)
Object A {
def a = { something}
}
// I've import A, but still have error message: not found: type A
val x = mock[A]
Object A {
def a = { something}
}
// I've import A, but still have error message: not found: type A
val x = mock[A]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你不知道。
A
不仅不是类型或类——它是一个实例——而且它是单例 (A.type
) 的实例。相反,您所做的是将您的方法放在
trait
上,并让对象扩展它。然后,您模拟特征而不是模拟对象。You don't. Not only
A
is not a type or class -- it is an instance -- but it is an instance of a singleton (A.type
).What you do instead is put your methods on a
trait
, and make the object extend it. Then, you mock the trait instead of mocking the object.您可能会发现此电子邮件线程很有启发。
虽然使用任何工具都无法对对象进行纯粹的模拟,但上面的线程确实为您提供了一些选项。所有这些都涉及在某种程度上改变你的设计。
You may find this email thread instructive.
Whilst pure mocking of the object is not possible with any tool yet, the thread above does have a few options for you. All of which involve changing your design to some degree.