今日一日はまったので、覚書。
Junit5Controller.java
@Controller
public class Junit5Controller {
    @RequestMapping("/Junit5")
    public @ResponseBody String greeting() {
        return "Hello, World";
    }
}
@SpringBootTest
@AutoConfigureMockMvc
class Junit5ControllerTest {
    @Autowired
    private MockMvc mockMvc;
    @Test
    public void shouldReturnDefaultMessage() throws Exception {
        this.mockMvc.perform(get("/Junit5")).andDo(print())
        .andExpect(content().string(containsString("Hello, World")));
    }
}
@WebMvcTestではエラーが出る。
1. 依存関係の挿入

インターフェイスを作成し使用した場合。
@SpringBootTest
@AutoConfigureMockMvc
class Test010ControllerTest {
    @Autowired
    private MockMvc mockMvc;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @MockBean
    private IndexListDao service;
    @Test
    void test() throws Exception {
        String sql = "SELECT * FROM index_list WHERE screen_id='Test001'";
        IndexListDto dto = jdbcTemplate.queryForObject(sql, new IndexRowMapper());
        when(service.findByScreenId("Test010")).thenReturn(dto);
        this.mockMvc.perform(get("/Test010"))
        .andExpect(status().isOk()).andExpect(content().string(containsString("Test001")));
    }
}
このコードでは、モックにより、screenIdを書き換えている。
when(service.findByScreenId("Test010")).thenReturn(dto);の部分で、”Test010”以外にするとエラーになる。