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