Mvc测试配置



伙计们。我有springMVC项目,我想测试CoursesController,但找不到如何做。我需要为测试创建单独的配置类吗?

在springMvc之前,我使用分离的配置类来测试嵌入式数据库。

我很感激能得到的一切帮助。

课程控制器类:

@Controller
@RequestMapping("/courses")
public class CoursesController {

private final CourseService courseService;
@Autowired
public CoursesController(CourseService courseService) {
this.courseService = courseService;
}
@GetMapping()
public String index(Model model, @RequestParam("page") Optional<Integer> page,
@RequestParam("size") Optional<Integer> size) throws ServiceException {
int currentPage = page.orElse(1);
int pageSize = size.orElse(10);
Page<Course> coursePage = courseService.findPaginated(PageRequest.of(currentPage - 1, pageSize));
model.addAttribute("coursePage", coursePage);
int totalPages = coursePage.getTotalPages();
if (totalPages > 0) {
List<Integer> pageNumbers = IntStream.rangeClosed(1, totalPages).boxed().collect(Collectors.toList());
model.addAttribute("pageNumbers", pageNumbers);
}
return "courses/index";
}
}

配置类别:

@Configuration
@ComponentScan("com.university")
@PropertySource("classpath:/application.properties")
@EnableWebMvc
public class Config implements WebMvcConfigurer {
@Autowired
private Environment env;
private final ApplicationContext applicationContext;
@Autowired
public Config(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
@Bean
public HikariDataSource dataSource() {
return (HikariDataSource) DataSourceBuilder.create().type(HikariDataSource.class)
.url(env.getProperty("spring.datasource.url"))
.driverClassName(env.getProperty("spring.datasource.driverClassName"))
.username(env.getProperty("spring.datasource.username"))
.password(env.getProperty("spring.datasource.password")).build();
}
@Bean
public JdbcTemplate jdbcTemplate() {
return new JdbcTemplate(dataSource());
}
@Bean
public SpringResourceTemplateResolver templateResolver() {
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setApplicationContext(applicationContext);
templateResolver.setPrefix("/WEB-INF/views/");
templateResolver.setSuffix(".html");
return templateResolver;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(templateResolver());
templateEngine.setEnableSpringELCompiler(true);
return templateEngine;
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setTemplateEngine(templateEngine());
registry.viewResolver(resolver);
}
@Bean
public SessionLocaleResolver localeResolver() {
SessionLocaleResolver localeResolver = new SessionLocaleResolver();
localeResolver.setDefaultLocale(Locale.ENGLISH);
return localeResolver;
}
}

我为H2数据库的测试做了单独的配置类。

最新更新