问题描述
伙计们。我有 spring MVC 项目,我想测试 CoursesController,但不知道如何去做。 我需要为测试制作单独的配置类吗?
在 springMvc 之前,我使用单独的配置类来测试嵌入式数据库。
我很感激我能得到的所有帮助。
CoursesController 类:
@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;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)