クラス内のメソッドをテストする必要があります。しかし、クラス自体には、継承され保護されているいくつかの内部プロパティとメソッドがあります。JUnit、Mockito、Powermockが保護されたローカルメソッドにアクセスする
事実ならば、私が持っていることは次のとおりです。
public class MyActionTest {
@Test
public void goToSearchBaseTest() {
MyAction myAction = new MyAction();
myAction.search();
assert (true);
}
}
その後
public class MyAction extends BaseAction{
...
public ActionForward search(){
if(this.getLog().isDebugEnabled()) {
this.getLog().debug("init --> search()");
}
}
}
そして最後に
public class BaseAction{
...
protected Log log;
...
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
...
log = LogFactory.getLog(this.getClass());
...
}
したがって、最初の行に私の小さなテスト休憩:アクセスしようとしていますロガー、私はそれにアクセスすることはできません(嘲笑されたロガーを置く)ので、それは親クラスの方法の前に、私は、変更することはできません。
私のいつものJUnitとMockitoトリックは十分ではない、と私は誰もがこの1で私を助けることができるpowermock
についてあまり知りませんか?
チェックこの1 https://stackoverflow.com/questions/34571/how-do-i-test-a-class-that-has-private-methods-を与えますfields-or-inner-class – Treibholz