Как смоделировать ReloadableResourceBundleMessageSource в этом случае - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть класс контроллера Rest, как показано ниже

@RestController
public class MyController {
    @Autowired
    private MYHelper myHelper;
    @Autowired
    @Qualifier("environmentMessageSource")
    protected ReloadableResourceBundleMessageSource environmentMessageSource;
    @PostMapping(value = {
        employees
    })
    public @ResponseBody Map < String, Object > getEmployees(@RequestBody MyVO myvo) throws Exception {
        Map < String, Object > responseMap = new HashMap < > ();
        try {
            responseMap = oeHelper.getDataService(environmentMessageSource.getMessage("MYPROP", null, null), myvo);
        } catch (Exception e) {

        }
        return responseMap;
    }
}

Я пытаюсь написать контрольный пример для моего контроллера. и его сбой в ReloadableResourceBundleMessageSource

@RunWith(MockitoJUnitRunner.class)
public class MyControllerTest {

    private MockMvc mockMvc;

    @Mock
    private OEHelper myHelper;

    @InjectMocks
    private MyController myController;

    @Mock
    protected ReloadableResourceBundleMessageSource environmentMessageSource;
    @Before
    public void setup() {

        MockitoAnnotations.initMocks(this);
        mockMvc = MockMvcBuilders
            .standaloneSetup(myController)
            .build();
        environmentMessageSource.setCacheSeconds(0);

    }



    @Test
    public void testgetESIDAndCalendarDates() throws Exception {
        Map < String, Object > responseMap = new HashMap < > ();
        MyVO myVO = new MyVO();


        Mockito.when(messageSource.getMessage(Mockito.anyString(), Mockito.any(Object[].class), Mockito.any(Locale.class)))
            .thenReturn("");
        Mockito
            .when(myHelper.getResponseFromService(Mockito.any(), Mockito.any(myVO.class)))
            .thenReturn(responseMap);

        mockMvc.perform(post("/employees")
                .contentType(MediaType.APPLICATION_JSON)
                .content(asJsonString(myVO))
            )
            .andExpect(MockMvcResultMatchers.status().isOk());

    }

}

По его словам, он не может найти ключ MYPROP в файл environmentproperties для языкового стандарта null

org.springframework.context.NoSuchMessageException: сообщение отсутствует находится под кодом 'MYPROP' для локали 'null'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...