当前位置: 首页 > news >正文

班级网站自助建设功能没有充值入口的传奇

班级网站自助建设功能,没有充值入口的传奇,经营类网页游戏大全,免费行情网站app下载大全sliceSpring Boot 引入了一段时间的测试切片 #xff0c;花了我一些时间来研究它并探索它的一些细微差别。 背景 使用此功能的主要原因是减少样板。 考虑一个看起来像这样的控制器#xff0c;仅适用于使用Kotlin编写的各种控制器。 RestController RequestMapping(/u… slice Spring Boot 引入了一段时间的测试切片 花了我一些时间来研究它并探索它的一些细微差别。 背景 使用此功能的主要原因是减少样板。 考虑一个看起来像这样的控制器仅适用于使用Kotlin编写的各种控制器。 RestController RequestMapping(/users) class UserController(private val userRepository: UserRepository,private val userResourceAssembler: UserResourceAssembler) {GetMappingfun getUsers(pageable: Pageable, pagedResourcesAssembler: PagedResourcesAssemblerUser): PagedResourcesResourceUser {val users userRepository.findAll(pageable)return pagedResourcesAssembler.toResource(users, this.userResourceAssembler)}GetMapping(/{id})fun getUser(id: Long): ResourceUser {return Resource(userRepository.findOne(id))} } 用于测试此控制器的传统Spring Mock MVC测试将遵循以下原则 RunWith(SpringRunner::class) WebAppConfiguration ContextConfiguration class UserControllerTests {lateinit var mockMvc: MockMvcAutowiredprivate val wac: WebApplicationContext? nullBeforefun setup() {this.mockMvc MockMvcBuilders.webAppContextSetup(this.wac).build()}Testfun testGetUsers() {this.mockMvc.perform(get(/users).accept(MediaType.APPLICATION_JSON)).andDo(print()).andExpect(status().isOk)}EnableSpringDataWebSupportEnableWebMvcConfigurationclass SpringConfig {Beanfun userController(): UserController {return UserController(userRepository(), UserResourceAssembler())}Beanfun userRepository(): UserRepository {val userRepository Mockito.mock(UserRepository::class.java)given(userRepository.findAll(Matchers.any(Pageable::class.java))).willAnswer({ invocation -val pageable invocation.arguments[0] as PageablePageImpl(listOf(User(id 1, fullName one, password one, email oneone.com),User(id 2, fullName two, password two, email twotwo.com)), pageable, 10)})return userRepository}} } 设置这样的测试涉及很多仪式-理解Web环境的Web应用程序上下文被引入需要创建设置Spring MVC环境的配置以及满足测试框架需求的MockMvc在每次测试之前进行设置。 网页切片测试 与以前的测试相比Web Slice测试要简单得多它专注于测试控制器并隐藏了许多样板代码 RunWith(SpringRunner::class) WebMvcTest(UserController::class) class UserControllerSliceTests {Autowiredlateinit var mockMvc: MockMvcMockBeanlateinit var userRepository: UserRepositorySpyBeanlateinit var userResourceAssembler: UserResourceAssemblerTestfun testGetUsers() {this.mockMvc.perform(get(/users).param(page, 0).param(size, 1).accept(MediaType.APPLICATION_JSON)).andDo(print()).andExpect(status().isOk)}Beforefun setUp(): Unit {given(userRepository.findAll(Matchers.any(Pageable::class.java))).willAnswer({ invocation -val pageable invocation.arguments[0] as PageablePageImpl(listOf(User(id 1, fullName one, password one, email oneone.com),User(id 2, fullName two, password two, email twotwo.com)), pageable, 10)})} } 它通过创建Spring Application上下文但过滤掉与Web层无关的所有内容并仅加载已传递到WebTest批注中的控制器来工作。 控制器需要的任何依赖关系都可以作为模拟注入。 涉及到一些细微差别例如如果我想自己注入某个字段则可以使用自定义的Spring Configuration进行测试对于测试可以使用内部TestConfiguration注释的静态类来完成。以下方式 RunWith(SpringRunner::class) WebMvcTest(UserController::class) class UserControllerSliceTests {Autowiredlateinit var mockMvc: MockMvcAutowiredlateinit var userRepository: UserRepositoryAutowiredlateinit var userResourceAssembler: UserResourceAssemblerTestfun testGetUsers() {this.mockMvc.perform(get(/users).param(page, 0).param(size, 1).accept(MediaType.APPLICATION_JSON)).andDo(print()).andExpect(status().isOk)}Beforefun setUp(): Unit {given(userRepository.findAll(Matchers.any(Pageable::class.java))).willAnswer({ invocation -val pageable invocation.arguments[0] as PageablePageImpl(listOf(User(id 1, fullName one, password one, email oneone.com),User(id 2, fullName two, password two, email twotwo.com)), pageable, 10)})}TestConfigurationclass SpringConfig {Beanfun userResourceAssembler(): UserResourceAssembler {return UserResourceAssembler()}Beanfun userRepository(): UserRepository {return mock(UserRepository::class.java)}}} 来自“ TestConfiguration”的Bean将添加到Slice测试所依赖的配置中而不是完全替换它。 另一方面如果我想重写带注释的主“ SpringBootApplication”主类的加载则可以显式传递一个Spring Configuration类但要注意的是我现在必须负责所有相关的加载。 Spring Boot具有我自己的功能启用自动配置适当的扫描等因此可以通过以下方法来围绕它显式地将配置注释为Spring Boot应用程序 RunWith(SpringRunner::class) WebMvcTest(UserController::class) class UserControllerExplicitConfigTests {Autowiredlateinit var mockMvc: MockMvcAutowiredlateinit var userRepository: UserRepositoryTestfun testGetUsers() {this.mockMvc.perform(get(/users).param(page, 0).param(size, 1).accept(MediaType.APPLICATION_JSON)).andDo(print()).andExpect(status().isOk)}Beforefun setUp(): Unit {given(userRepository.findAll(Matchers.any(Pageable::class.java))).willAnswer({ invocation -val pageable invocation.arguments[0] as PageablePageImpl(listOf(User(id 1, fullName one, password one, email oneone.com),User(id 2, fullName two, password two, email twotwo.com)), pageable, 10)})}SpringBootApplication(scanBasePackageClasses arrayOf(UserController::class))EnableSpringDataWebSupportclass SpringConfig {Beanfun userResourceAssembler(): UserResourceAssembler {return UserResourceAssembler()}Beanfun userRepository(): UserRepository {return mock(UserRepository::class.java)}}} 但是要注意的是现在其他测试可能最终会找到这种不理想的内部配置因此我的学习一直依赖于最低限度的切片测试并在需要时使用TestConfiguration对其进行扩展。 我在github仓库中有一些更详细的代码示例其中包含一些可用的示例。 翻译自: https://www.javacodegeeks.com/2017/06/spring-boot-web-slice-test-sample.htmlslice
http://www.zqtcl.cn/news/849282/

相关文章:

  • 佛山市顺德区建设局网站萧山网站建设
  • 合肥百度团购网站建设怀化网站开发
  • 网站建设ppt模板彩票网站开发dadi163
  • 网站建设4435建筑设计一般用什么软件
  • 河南网站建设重庆森林台词
  • 网站一直没收录雄安做网站
  • 全国网站直播平台被摧毁响应是网站怎么做
  • 衡阳建设网站做网站和app多少费用
  • 怎么做付费网站蚌埠网站建设专业公司哪家好
  • 学网站建设需要多长时间成都网站建设定制开发服务
  • 建站宝盒后台深圳建网站公司怎么选择
  • 什么是大型门户网站网站建设的经验之谈
  • 网站建站网站设计网站制作书生
  • 租号网站是怎么做的wordpress 快讯功能
  • 口碑好的盐城网站建设wordpress课堂主题
  • 网站品牌打造wordpress插件有木马
  • 网站开发与软件研发有什么区别查网站域名备案查询系统
  • 硬盘做免费嗳暧视频网站黄冈免费网站推广平台汇总
  • node做网站怎么知道蜘蛛来过怎么学网站设计
  • 青海省建设厅网站公示公告简单建站
  • 手机网站用什么后台wordpress 百度蜘蛛
  • 网站文章伪原创怎么做手机网站 程序
  • 网站建设每月工作多少开发小程序的目的
  • 社区网站建设方案pptwordpress用户名在哪看
  • 浙江企业响应式网站建设公司简介如何写
  • 自己做静态网站的步骤店面设计在线
  • 活动汪活动策划网站wordpress 无法保存
  • 门户网站开发案例兰州需要做网站的公司有哪些
  • 东莞企业网站asp网站怎么安装
  • 个人做公司网站网站备案取消接入