誰擁有針對該共同需求的解決方案。註釋使私有方法只針對測試類別公開
我在我的應用程序中有一個類。
一些方法是公開的,因爲它們是API, 的一部分,有些是私人的,因爲它們在內部使用使內部流程更加易讀
現在,說我想要寫一個單元測試,或者更像是一個集成測試,它將位於不同的包中,允許調用此方法,但是,如果您嘗試從應用程序的類調用此方法,則不會允許對此方法進行正常調用本身
所以,我在想這樣的事情
public class MyClass {
public void somePublicMethod() {
....
}
@PublicForTests
private void somePrivateMethod() {
....
}
}
上面的註釋將私有方法標記爲「public for tests」 這意味着編譯和運行時將被允許用於任何在測試...包下的類,而編譯和\或運行時將失敗任何不在測試包內的類。
有什麼想法? 有沒有像這樣的註釋? 有沒有更好的方法來做到這一點?
看來你寫更多的單元測試,將更多的inforced打破你的封裝...
爲什麼不使用反射來訪問私有方法? – chance