0
我是JMockit 1.31的新手。使用JMockit,我試圖爲下面的代碼編寫單元測試腳本,但是我收到斷言失敗錯誤。請幫我弄清楚這個問題。如何使用JMockit模擬非靜態方法1.31
主類:ForUnit.java
public class ForUnit {
private UnitHelper unit = new UnitHelper();
public int add() {
return unit.getNumberA() + unit.getNumberB();
}
public int subtract() {
UnitHelper unit = new UnitHelper();
return unit.getNumberA() - unit.getNumberB();
}
public int subtractFromThird() {
return unit.getNumberA() - unit.getNumberB() + 10;
}
}
依賴類:UnitHelper
public class UnitHelper {
private int a = 200;
private int b = 100;
public int getNumberA() {
return a;
}
public int getNumberB() {
return b;
}
}
單元測試腳本使用JMockit - ForUnitTest.java
public class ForUnitTest {
private final int i =10, j=8;
@Tested
private ForUnit forUnit;
@Test
public void test() {
final UnitHelper helper = new UnitHelper();
new Expectations() {{
helper.getNumberA(); result = i;
helper.getNumberB(); result = j;
}};
assertEquals(i+j, forUnit.add());
}
}
謝謝你Alayor。有沒有更多的選擇,而不是添加構造函數? –
您只需添加一個帶有'package'可見性的setter方法。 – alayor
是的,顯然我們可以使用setter/constructors。但是,有沒有其他解決方案? –