1

mockito を使用するときに ContextLoader.getCurrentWebApplicationContext() 呼び出しをモックしようとしていますが、モックに失敗します。

  //here is my source code            
  @Mock
  org.springframework.web.context.WebApplicationContext webApplicationContext;

//test Case Body
 try (MockedStatic<ContextLoader> dummy = Mockito.mockStatic(ContextLoader.class)) {
                    
AnswerInfo answerInfo = Mockito.mock(AnswerInfo.class);
                    
TranDescScoreInfo descScoreInfo2 = Mockito.mock(TranDescScoreInfo.class);
                    
when(ctx.getBean("answerInfo")).thenReturn(answerInfo);
when(ctx.getBean("tranDescScoreInfo")).thenReturn(descScoreInfo2);
                    
dummy.when(() -> ContextLoader.getCurrentWebApplicationContext()).thenReturn(webApplicationContext);
                    
//ContextLoader.getCurrentWebApplicationContext() getting null I dont why it getting null.
                            
        }

//Below Code is my business logic  
 ApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext();
 AnswerInfo answerInfo = (AnswerInfo) ctx.getBean("answerInfo");
 tranDescScoreInfo = (TranDescScoreInfo) ctx.getBean("tranDescScoreInfo");

// ctx.getBean が null を取得しているのは、ここで想定どおりにモック呼び出しを取得していないためです。注: ビジネス ロジックを変更したくありません

4

2 に答える 2