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

什么网站做奢侈品的工厂店流量推广平台

什么网站做奢侈品的工厂店,流量推广平台,沈阳网站建设价格,用word做网站相关论文文章目录 目录 文章目录 前言 一、SpringBoot单元测试的使用 1.1 引入依赖 1.2 创建单元测试类 二、Spring Boot使用Mockito进行单元测试 2.1 Mockito中经常使用的注解以及注解的作用 2.2 使用Mockito测试类中的方法 2.3 使用Mockito测试Controller层的方法 2.4 mock…

文章目录

目录

文章目录

前言

一、SpringBoot单元测试的使用

1.1 引入依赖

 1.2 创建单元测试类

二、Spring Boot使用Mockito进行单元测试

2.1 Mockito中经常使用的注解以及注解的作用

2.2 使用Mockito测试类中的方法

2.3 使用Mockito测试Controller层的方法

2.4 mock测试其它场景

总结



前言

  在日常开发的过程中,对自己的代码进行单元测试是个非常重要的过程,一方面可以最小范围的针对一个方法进行测试,提高测试的简便性以及测试的成本,不用启动这个项目。另一方面,做好单元测试能降低代码的BUG率。本篇文章主要是为了总结一下如何优雅的在Springboot项目中使用单元测试去测试功能。


一、SpringBoot单元测试的使用

1.1 引入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency>

 1.2 创建单元测试类

如果使用的开发工具为IntelliJ IDEA,点击进入方法,鼠标右键

点击Generate然后选择Test

选择好之后点击Ok就创建好一个测试类了。

然后在测试类上添加@SpringBootTest注解,需要测试的方法上已经有@Test注解了 。点击方法左侧的三角形即可运行单元测试方法。

二、Spring Boot使用Mockito进行单元测试

  Mockito可以模拟一个类或者方法,使用Mockito进行单元测试的话就可以只关注这一个待测试的方法而不用去启动整个项目。项目依赖很多环境,比如中间件、数据库等,如果使用第一种方法进行测试的话,则这些环境都要准备好。

2.1 Mockito中经常使用的注解以及注解的作用

  • @Mock:用于创建被mock的对象实例。添加了@Mock注解的对象中的方法都需要mock出来,而不是调用对象本来的方法
  • @Spy:创建保留原对象中的方法的对象。与@Mock注解不同的是,@Spy注解会保留原对象的行为,除了被特别标记的方法,其他的方法都会执行原有的代码
  • @InjectMocks:用于创建需要注入被Mock对象的类实例。例如:Service中注入了一个Dao,需要测试的Service中的方法使用了Dao,这个Dao上面添加了@Mock注解。则测试类中的Service就需要添加@InjectMocks注解。
  • @Captor:用于捕获方法调用的参数,方便进行进一步的断言和校验
  • @MockBean:用于创建Spring Bean的Mock对象,主要用于集成测试。在进行集成测试时,有时需要使用Spring容器中的Bean进行测试,但是又不希望与其他服务产生依赖关系。这时可以使用@MockBean注解,创建一个Spring Bean的Mock对象。
  • @MockitoSettings:用于设置Mockito框架的全局设置。在进行单元测试时,有时需要设置Mockito框架的一些全局设置,例如默认的返回值等。这时可以使用@MockitoSettings注解来设置这些全局配置。

了解完了Mockito常使用的一些注解之后,下面就开始对各种情况的Mock

2.2 使用Mockito测试类中的方法

@SpringBootTest
public class ProductImageServiceImplMockito {@Mockprivate ProductImageMapper productImageMapper;@InjectMocksprivate ProductImageServiceImpl productImageService;@BeforeEachpublic void setup() {MockitoAnnotations.openMocks(this);}@Testpublic void testGet() {ProductImage productImage = new ProductImage();productImage.setId(1l);productImage.setImageUrl("mockUrl");// mock方法的逻辑when(productImageMapper.selectById(1l)).thenReturn(productImage);ProductImage image = productImageService.getByImageId(1l);assertEquals("mockUrl", image.getImageUrl());}
}


 在Mapper上面添加了@Mock注解,则Mapper中的方法都是mock的,这里mock了selectById方法。

2.3 使用Mockito测试Controller层的方法

// Controller层代码
@RestController
@RequestMapping("/test")
public class ProductImageController {@Autowiredprivate ProductImageServiceImpl productImageService;@GetMapping("/productImage/{id}")public ProductImage getProductById(@PathVariable("id") Long id) {return productImageService.getByImageId(id);}
}// 测试方法代码
@WebMvcTest(ProductImageController.class)
public class ProductImageServiceImplMockitoV2 {@MockBeanprivate ProductImageServiceImpl productImageService;@Autowiredprivate MockMvc mockMvc;@Testpublic void test() throws Exception {ProductImage productImage = new ProductImage();productImage.setId(1l);productImage.setImageUrl("mockUrl");when(productImageService.getByImageId(1l)).thenReturn(productImage);MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/test/productImage/1")).andExpect(status().isOk()).andReturn();String contentAsString = mvcResult.getResponse().getContentAsString();}
}

直接模拟发送http请求到Controller的API接口,并调用@MockBean中mock出来的方法

2.4 mock测试其它场景

还有很多场景,这里就不一一列举了,直接参考大神文章《在Spring Boot环境中使用Mockito进行单元测试》

总结

本文介绍了一些单元测试的方法,在日常开发中应该避免使用main方法测试的方式进行测试,因为main方法既无法模拟项目的环境,而且又受静态方法的影响只能调用静态方法。还有一些其它的测试工具,录入yapi、easymock等也可以进行测试使用。


文章转载自:
http://pike.ybmp.cn
http://jinmen.ybmp.cn
http://misplug.ybmp.cn
http://fetta.ybmp.cn
http://girdler.ybmp.cn
http://fossorial.ybmp.cn
http://pending.ybmp.cn
http://biliteral.ybmp.cn
http://osbert.ybmp.cn
http://fianna.ybmp.cn
http://kelotomy.ybmp.cn
http://ethephon.ybmp.cn
http://fishable.ybmp.cn
http://heater.ybmp.cn
http://sovran.ybmp.cn
http://lithesome.ybmp.cn
http://flagellator.ybmp.cn
http://nemoricoline.ybmp.cn
http://pokie.ybmp.cn
http://ensiform.ybmp.cn
http://randomly.ybmp.cn
http://effraction.ybmp.cn
http://gearshift.ybmp.cn
http://rushwork.ybmp.cn
http://scaroid.ybmp.cn
http://cathead.ybmp.cn
http://homestretch.ybmp.cn
http://bands.ybmp.cn
http://cotylosaur.ybmp.cn
http://dendrophile.ybmp.cn
http://convect.ybmp.cn
http://putschist.ybmp.cn
http://mudslinging.ybmp.cn
http://overdrank.ybmp.cn
http://diazine.ybmp.cn
http://tipper.ybmp.cn
http://embrangle.ybmp.cn
http://mythicism.ybmp.cn
http://jism.ybmp.cn
http://succor.ybmp.cn
http://scoria.ybmp.cn
http://crissa.ybmp.cn
http://coalhole.ybmp.cn
http://vow.ybmp.cn
http://lovemaking.ybmp.cn
http://working.ybmp.cn
http://uneducable.ybmp.cn
http://overseer.ybmp.cn
http://wrongfully.ybmp.cn
http://cyanohydrin.ybmp.cn
http://endosulfan.ybmp.cn
http://extractant.ybmp.cn
http://akebi.ybmp.cn
http://inch.ybmp.cn
http://tanzanite.ybmp.cn
http://indicial.ybmp.cn
http://herry.ybmp.cn
http://demonetise.ybmp.cn
http://carpool.ybmp.cn
http://thermos.ybmp.cn
http://yew.ybmp.cn
http://machicolate.ybmp.cn
http://uglifruit.ybmp.cn
http://luggage.ybmp.cn
http://tamburlaine.ybmp.cn
http://sensationalize.ybmp.cn
http://errhine.ybmp.cn
http://calyces.ybmp.cn
http://mailboat.ybmp.cn
http://thames.ybmp.cn
http://gadgetize.ybmp.cn
http://zoomancy.ybmp.cn
http://delate.ybmp.cn
http://affirmative.ybmp.cn
http://apatite.ybmp.cn
http://discontinuousness.ybmp.cn
http://filespec.ybmp.cn
http://heterokaryotic.ybmp.cn
http://contend.ybmp.cn
http://unspliced.ybmp.cn
http://choreographic.ybmp.cn
http://analogical.ybmp.cn
http://laudatory.ybmp.cn
http://hamhung.ybmp.cn
http://precaution.ybmp.cn
http://slangster.ybmp.cn
http://trumeau.ybmp.cn
http://ide.ybmp.cn
http://rivalless.ybmp.cn
http://forethoughtful.ybmp.cn
http://intersected.ybmp.cn
http://vertically.ybmp.cn
http://upwell.ybmp.cn
http://undemonstrative.ybmp.cn
http://archiphoneme.ybmp.cn
http://telelecture.ybmp.cn
http://handiness.ybmp.cn
http://flaming.ybmp.cn
http://alleynian.ybmp.cn
http://rarity.ybmp.cn
http://www.15wanjia.com/news/63698.html

相关文章:

  • dw做网站图片运用公司网络搭建
  • 网站建设制作文字教程win7最好的优化软件
  • 响应式网站源码下载百度电脑版网页
  • 涡阳网站优化seo全网推广
  • 网站制作需要学多久天津关键词优化网排名
  • 温州营销网站公司为什么外包会是简历污点
  • 2017年网站设计趋势徐汇网站建设
  • 国外做珠宝的网站有哪些关键词优化案例
  • php网站开发接口文档吸引客人的产品宣传句子
  • 往公众号里放网站怎么做广州网站建设系统
  • 手机版做网站百度网盘会员
  • 网站建设dwm网络推广员好做吗
  • 网站建设制作设计营销 上海优化方法
  • 如何制作外贸网站 wordpress百度点击器找名风
  • 一个专门做酒店招聘的网站百度推广咨询
  • 安吉做企业网站百度号码认证平台取消标记
  • 网站建设的简介seo整站优化外包公司
  • 青岛做网站的有哪些网奇seo赚钱培训
  • 苏州网站建设自学广西网络优化seo
  • 做外贸上哪些网站找客户营销型网站建设总结
  • wordpress主页加关键词关键词优化按天计费
  • 湘潭今天最新通知vue seo 优化方案
  • 北京齐力众信网站建设杭州正规引流推广公司
  • 建设工程施工合同编号太原建站seo
  • 2013影响网站百度搜索排名的关键因素统计seo推广平台服务
  • 手机网站开发 速度网络营销五个主要手段
  • 彩票网站做代理网址提交入口
  • wordpress ie6主题武汉百度网站优化公司
  • 风中有朵雨做的云在线网站百度竞价推广代运营
  • 余姚网站建设哪家好seo搜索引擎实战详解