簡體   English   中英

Spring 引導:JAXBElement null 指針異常

[英]Spring Boot : JAXBElement null pointer exception

我對 Junit 5 和 Mockito 框架完全陌生。 現在我正在嘗試為 function 實現 JUnit 測試用例。 有人可以在 Mocking 中提供幫助,因為下面的測試實現在指定行拋出 NullPointerException。

Class XYZ{

       @Autowired
       private SoapCall soapCall;

       public void validate(){
 
                 //code....

            JAXBElement <SubDTO> jax = (JAXBElement <Sub_DTO>) soapCall.callSoapService(val1, val2, val3, val4, val5);
 
            SubDTO  response = jax.getValue();  // Getting null pointer exception while Unit testing at this line   

        }
}

單元測試

Class TestValid{

   @Mock
   SoapCall soapCall;

   @InjectMocks
   XYZ xyzzy;

   @BeforeEach
   void setUp(){
      MockitoAnnotations.initMocks(this);
   }

   @Test
   public void test1(){
        SubDTO dto= new SubDTO("a","b","c");

        JAXBElement<SubDTO> jax = new JAXBElement <> (any(), any(), any());

        jax.setValue(dto)            

   Mockito.when(soapCall.callSoapService(any(),any(),any(),anyInt(),anyInt())).thenReturn( jax );

        Assertions.assertDoesNotThrow(()->xyz.validate());
   }
}

這條線在我看來很奇怪:

        JAXBElement<SubDTO> jax = new JAXBElement <> (any(), any(), any());

any()是一個匹配器,僅在設置 mocking 或驗證期間使用。 它總是返回null

基本上,您正在編寫與此相同的代碼:

        JAXBElement<SubDTO> jax = new JAXBElement <> (null, null, null);

與其傳入null值,不如傳入QName 、 class 和該 class 的實例作為JAXBElement構造函數。

但是,當我嘗試運行您的代碼時,我沒有收到NullPointerException 我在上面的行中收到IllegalArgumentException ,抱怨null值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM