首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

两个基于spring的单元测试简单样例

单元测试,从一定程度上可以看出一个同学达到的层次。但又不完全是,有时可能只是一个思考方式的转变。单元测试有非常多的工具供选择,在java中,junit无疑是比较常用的。本文列出,junit在spring中的使用样例,供参考。

1:单元测试主要方式

这里仅说我们常用的单元测试的场景,或者是我自己常用的场景,主要分为4大类:

1. 对外提供的接口级别的测试,如rest-api, 主要用于保证对外提供的接口符合预期, 而非等到别人调用时才发现异常;

2. serivce 级别的单元测试, 主要用于保证service功能正常;

3. 静态方法的测试, 主要用于测试一些工具类符合预期,这类测试一般比较简单;

4. mock接口实现测试, 这类测试往往最复杂, 一般是为测试复杂场景, 但又要保证影响因素单一, 保证测试的有效性, 要求既要mock得少也要求mock得合适, 最难;

一般还有对环境初始化时的运行,和结束测试时的清理工作,即setup() 和teardow(). 在junit中就体现为两个注解:@Before 和 @After 。

实际上,除了最后一种测试是比较体系化和完备的之外,前几种也许都不是那么细致,至少一般测试不到某个很小的点上,或者说场景不一致。api,service一般会涉及到复杂的外部系统调用,一是依赖多二是速度慢,而尽量保持本地化测试中一个最佳实践。但记住一点,单元测试应该基于行为,而非基于实现。

2. springmvc 的单元测试样例

这里主要说的是低版本的springmvc, 里面依赖还比较原始, 所以需要单独讲讲。其依赖包可如下参考:

测试用例样例如下:(主要注意必要时引用 servlet的配置就行,否则可能找不到对应的controller)

即对上面4种场景的简单实现样例。

3. springboot的单元测试样例

springboot为我们省去了许多的依赖问题,所以不会很麻烦。只需引入 test 包,其他相应依赖就下来了。而且一般都是demo代码里默认带有的依赖:

其使用样例则也会更简单,一个注解搞定了。

可见springboot确实简单了许多。但框架始终只是框架,需要用户注入灵魂,才能在其上面玩出花样来。

测试驱动或者测试先行开发,是一种比较好的实践,可以让我们少走弯路,且更自信。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210316A05V7A00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券