返回的數據有下面的代碼我如何嘲弄在單元測試
Class A {
public boolean showData() {
NewData data = getNewData();
if (data!=null) {
return true;
} else {
return false;
}
}
public NewData getNewData() {
return NewData = abc;
}
}
我需要模擬getNewData返回嘲笑數據,當我打電話showData()。
需要明確的是,
如果我嘲笑像下面的getNewData,
when(a.getNewData()).thenReturn(null);
assertFalse(showData()) // this doesn't work because the mocked internal getNewdata is not used.
是有辦法解決這一問題?
你使用的是什麼模擬框架? – assylias
你能展示更多的測試,包括模擬設置嗎? – chinaowl
在這種特殊情況下,在A中有一個構造函數需要一個NewData是有意義的 - 這樣你可以很容易地測試......換句話說,在使用應該是最後一個的mock之前,試着讓你的類更易測試採取。 – assylias