@RepositoryRestController
@RequestMapping("movies")
public class MovieController {
private MovieService movieService;
private PagedResourcesAssembler<Movie> pagedAssembler;
private MovieResourceAssembler movieResourceAssembler;
@Autowired
public void setMovieService(MovieService movieService) {
this.movieService = movieService;
}
@Autowired
public void setPagedAssembler(PagedResourcesAssembler<Movie> pagedAssembler) {
this.pagedAssembler = pagedAssembler;
}
@Autowired
public void setMovieResourceAssembler(MovieResourceAssembler movieResourceAssembler) {
this.movieResourceAssembler = movieResourceAssembler;
}
// Return all movies with pagination
@GetMapping
public ResponseEntity<?> getAllMovies(Pageable pageable) {
Page<Movie> moviePage = this.movieService.getAllMovies(pageable);
// Remove some unnecessary fields
//this.movieService.removeUndesirableFieldsFromListing(moviePage);
return ResponseEntity.ok(this.pagedAssembler.toResource(moviePage, this.movieResourceAssembler));
}
}
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class MovieControllerTest {
@Autowired
private MockMvc mockMvc;
@MockBean
private MovieService movieService;
@Test
public void getAllMovies_PageableGiven_ShouldReturnMoviesPage() throws Exception {
List<Movie> movieList = new ArrayList<>();
movieList.add(new Movie());
movieList.add(new Movie());
Page<Movie> moviePage = new PageImpl<>(movieList);
given(this.movieService.getAllMovies(PageRequest.of(0,2)))
.willReturn(moviePage);
this.mockMvc.perform(get("http://localhost:8080/api/movies?page=1"))
.andExpect(status().isOk());
}
}
NestedServletException:请求处理失败;嵌套异常是java.lang.IllegalArgumentException:页面不能为空!
您可以使用Spring的mockMvc对象将其注入到测试类中:
@Autowired
private MockMvc mockMvc;
我刚刚使用mockmvc.perform方法创建了一个测试方法,发送一个页面请求:
我的控制器代码:
@GetMapping(produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
public List<BaseResponse> listAllBase(
@PageableDefault(size = 50, page = 2) Pageable pageable) {
// logger.debug("paginación recibida :{}",pageable);
List<BaseResponse> findAllBases = baseService.findAllBases();
return findAllBases;
}
mockMvc.perform(get("/base/?size=2&page=0")).andExpect(status().isOk())
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)) .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE))
.andExpect(jsonPath("$", hasSize(2))) .andExpect(jsonPath("$", hasSize(2)))
.andExpect(jsonPath("$[0].name", equalToIgnoringCase("margarita")))
测试类方法:
https://github.com/cristianprofile/spring-boot-mvc-complete-example/blob/developm/spring-boot-mvc-rest/src/test/java/com/mylab/cromero/controller/resttestt.java#l66
您可以在项目中使用它:)
我坚持使用这个简单的MVC示例。当我启动应用程序并转到localhost:8080时,我得到了“白标签错误页面”,甚至我在“src/main/资源/模板”中创建了“index.html”。我还在我的索引方法上添加了@Request estMap(“/”)。我找不到问题。 : : -在"src/main/资源/模板"下:
我正在尝试表单,其中包括: 普通输入字段 在控制器中设置选项的单选按钮(稍后可能来自数据库) 复选框,其选项也在控制器中设置 选择也在控制器中设置的字段 方法1采用方法1。 如果验证失败,如何在post之后以表单形式再次呈现这些值? 是否也必须像在GET方法中一样设置POST方法中的列表中的值?
我能够使用cloudera提供的示例jar在alluxio上运行wordcount,使用: 但是当我使用附带代码创建的jar时,我不能运行它,这也是一个示例wordcount示例代码 上面的代码是使用maven pom.xml文件构建的 你能帮我在alluxio集群中运行我的wordcount程序吗。希望没有额外的配置添加到pom文件运行相同。
这次的页面测试就没啥难度了吧, 先强制登出 http://192.168.72.102:8080/nutzbook/user/logout 因为UserModule里面的logout方法已经删除,如果出现404,也只是shiro配置的问题了 一如既往,登陆, 成功后跳转到用户详情页 http://192.168.72.102:8080/nutzbook/user/login 访问用户列表页,
一切就绪,请再仔细检查一下本章的修改,然后启动Tomcat, 首先的输出的日志将会发生变化 [INFO ] 20:33:09.574 org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(EnvironmentLoader.java:128) - Starting Shiro environment initialization. [
启动Tomcat, 如无异常, 应该能看到多个建表语句输出 2015-04-16 23:57:19,738 org.nutz.dao.impl.sql.run.NutDaoExecutor._runStatement(NutDaoExecutor.java:313) DEBUG - CREATE TABLE t_user( id INT(32) AUTO_INCREMENT, name VARCH