0
我的代码结构的功能是象下面这样:模拟与一个回调函数作为参数
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是本地的,不适合单元测试。除了将x移出foo以外的任何建议?
我也想测试B. A是外部类依赖于DB - 意味着我必须嘲笑一个在单元测试。由于A.a需要一个回调函数作为它的参数,我写了x()。 – user398384 2011-04-19 02:54:39
听起来好像你想表达的那样:'A.a'被调用至少一次,但你不关心在调用中使用的参数。我不知道EasyMock,但嘲笑框架通常用'a.a(any)atLeastOnce'等表达这样的期望。如果你关心关闭(例如,你想验证它有一个特定的副作用),你可以捕获实际的参数并调用它(以伪造'A'的角色)。 – 2011-04-19 03:03:07