0
因爲我can't fake an abstract class directly和我知道實施類,我添加了假實施類。如何刪除抽象方法的jMockit Fake/MockUp?
@BeforeClass
public static void fakeCurrentYear() {
// Mocking the abstract 'Calender' does not work, see: https://github.com/jmockit/jmockit1/issues/71
// So we use the implementing class 'GregorianCalendar'.
new MockUp<GregorianCalendar>() {
@Mock public int get(Invocation invocation, int field) {
return 2016;
}
};
}
我使用jMockit v 1.31與JUnit 4.12和Maven 3.x.
當我單獨執行測試時,一切都很好。
但是,當我一起執行所有測試時,另一個測試失敗,因爲實現類中的log4jlogger顯然使用假實現。
我認爲這是因爲之前GregorianCalendar
沒有覆蓋該方法。但是,我認爲這個假的是在測試類之後自動刪除的!這是一個錯誤?
我可以手動刪除它嗎?我嘗試回到JMockit v1.25,創建一個靜態變量yearMock = new MockUp<GregorianCalendar>() ...
,並在@AfterClass
方法中調用yearMock.tearDown()
,但它沒有改變任何內容。