簡體   English   中英

我在模擬中有一個NullPointerException,但我不知道該怎么辦

[英]I have a NullPointerException in a mock, and I don't know what to do

我為此方法做一個模擬:

public String buscarDescripcion(MaestroDTO departamento, String codigoMunicipio){
        String descripcion = null;
        List<MaestroDTO> listaMunicipios = getListaMucipios(departamento);
        if(listaMunicipios != null) {
            for (MaestroDTO maestroDTO : listaMunicipios) {
                if(maestroDTO.getCodigo().equals(codigoMunicipio)){
                    descripcion = maestroDTO.getNombre();
                    break;
                }
            }
        }
        return descripcion;
    }

在測試課程中。 這將返回一個完整的城市名稱列表。 但是,當我運行測試時,出現NullPointerException錯誤。 我在測試類中使用的模擬是這樣的:

listaCiudad = mock(ListaCiudad.class);

when(listaCiudad.buscarDescripcion(any(MaestroDTO.class), any(BigDecimal.class).toString())).thenReturn("MEDELLIN");

buscarDescripcion方法具有兩個參數,MaestroDTO和一個String。 當我使用字符串運行測試時,這顯示出強制轉換錯誤。 當我使用BigDecimal.toString()時,這向我顯示了一個nullpointerexception。 我不知道我是否以錯誤的方式調用了該參數,因為我對模擬不是很了解! 我感謝您的幫助! 謝謝! (對不起我的英語不好)。

您沒有正確地放置模擬。 您應該使用MockitoanyString()替換any(BigDecimal.class).toString() MockitoanyString()

Mockito.when(listaCiudad.buscarDescripcion(Mockito.any(MaestroDTO.class), Mockito.anyString())).thenReturn("MEDELLIN");

暫無
暫無

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

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