6
我有一個必須調用抽象類的私有方法的需求。調用抽象類的私有方法
比方說抽象類看起來象下面這樣: -
public abstract class Base {
protected abstract String getName();
private String getHi(String v) {
return "Hi " + v;
}
}
能有些讓我知道是有辦法,我可以叫getHi
(可能是通過Reflection
或其他方式),這樣我可以測試它出來嗎?我正在使用Junit 4.12
和Java 8
我已經經歷了這個question但這裏的方法在抽象類中不是私有的。
我也經歷了這個question即使這個不談抽象類中的私有方法。
我不是在問這裏是否應該測試私有方法,或者測試私有方法的最佳策略是什麼。網上有很多關於這方面的資源。我只是想問我們應該如何在java中調用一個抽象類的私有方法。
見http://stackoverflow.com/q/105007/3788176 –
我知道有關的討論中,我們是否應該測試私有方法還是不行。其實我有興趣知道是否可以從測試代碼中調用抽象類的私有方法? – tuk
請參閱http://stackoverflow.com/questions/6913325/annotation-to-make-a-private-method-public-only-for-test-classes,它提供了一些方法。特別是,[這個答案](http://stackoverflow.com/a/6913775/3788176)鏈接到關於測試私有方法的JUnit文檔。 –