如何在 scala 中模拟静态函数(对象函数,而不是类函数)

发布于 2024-11-02 03:05:10 字数 175 浏览 4 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

疯狂的代价 2024-11-09 03:05:10

你不知道。 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.

傲性难收 2024-11-09 03:05:10

您可能会发现此电子邮件线程很有启发。

虽然使用任何工具都无法对对象进行纯粹的模拟,但上面的线程确实为您提供了一些选项。所有这些都涉及在某种程度上改变你的设计。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文