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

访问中国建设银行网站深圳视频制作公司

访问中国建设银行网站,深圳视频制作公司,建工网查询,wordpress 图书春天开机推出 测试切片而回#xff0c;它已经采取了一些时间来解决它我的头#xff0c;并探讨一些细微的差别。 背景 使用此功能的主要原因是减少样板。 考虑一个看起来像这样的控制器#xff0c;仅适用于使用Kotlin编写的各种控制器。 RestController RequestMapping(它已经采取了一些时间来解决它我的头并探讨一些细微的差别。 背景 使用此功能的主要原因是减少样板。 考虑一个看起来像这样的控制器仅适用于使用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.html
http://www.yutouwan.com/news/369257/

相关文章:

  • 企业网站建设的常见流程网上商城系统流程图
  • 想建设一个网站广告中国
  • 免费开网站系统厦门市网站建设局
  • 如何做好品牌网站建设专业做网站的团队推荐
  • 一个大网站需要多少钱wordpress ios shared
  • 网站首页标题五大常用办公软件
  • 石柱县建设局网站网页设计模板教程
  • 河津北京网站建设wordpress 单栏 主题
  • 为什么网站搜索不到邢台高端网站建设公司
  • 建网站要注册吗软件开发文档用什么写
  • 太原注册公司网站用wordpress做音乐网站
  • saas建站源码下载找人做网站如何担保
  • 如何制作建筑公司网站装修公司做网销的网站
  • 网站备案账户名如何查询在线免费做网站
  • 贴心的合肥网站建设网站注册收入
  • 南通企业建站模板上海手机网站建设公司
  • 做开箱的网站网站使用arial字体下载
  • 建设工程信息哪个网站有详细信息wordpress下一篇
  • 自己搭建网站需要什么产品网站定制
  • 南宁百度网站公司吗折800网站模板
  • 教人做策划的网站企业在什么网站推广
  • 做亚马逊外国网站需要语言好吗怎么下载网站程序
  • 抖音小程序代理郑州网站制作选择乐云seo
  • 在线做试卷的网站17我们一起做网站
  • wordpress整站无刷新网站登录后不显示内容
  • 无锡建设网站wordpress如何重装
  • 高端大气上档次的网站模板网站服务器设置
  • 建设一个一般网站需要多少时间建设银行博士后招聘网站
  • 俄罗斯网站建设公司网站备案后在百度上多长时间可以搜索到
  • 建设阅读网站的研究意义网站开发项目的心得体会