使用回调函数作为参数模拟函数

时间:2011-04-18 06:47:40

标签: scala callback easymock

我的代码结构如下:

class A {
  def a(x: () => Unit) { do something}
}

class B {
  .... 
  def foo() {
    def x() { something }
    a(x)
  }
}

现在我想用模拟A进行B类的单元测试。

val a = mock[A]
def x () { ... }
a.a(x) atLeastOnce

以上不起作用。因为这个新的x不是foo里面的x()。但是foo里面的x是本地的,不能通过unittest访问。除了将x移出foo之外的任何建议吗?

1 个答案:

答案 0 :(得分:0)

你必须模拟传入A.a.的函数文字。请查看以下SOF问题的答案,看看是否有帮助

How to mock a method with functional arguments in Scala?