服务层单元测试是连接数据库测试还是用mock测试?

土拨薯啊 发布于 2018/05/04 12:51
阅读 5K+
收藏 0

如何使用英特尔®oneAPI工具实现PyTorch 优化,直播火热报名中>>>

刚入行没多久,要写单元测试,目前阶段先针对服务层进行测试。

3种方法:

1.用真实数据库测试增删查改,dao层也一起测试了。因为数据库内容随时在变,每次测试前先针对每个测试方法跑一下sql脚本查出结果,再修改单测方法的Assert,然后跑单测。如果有50个单测,就要跑50遍不同sql,修改50个单测方法。如果需要数据,先插入一些数据。(这是我们组长要求的做法。)

2.测试前清空相关表的内容,再插入数据,根据插入的数据进行Assert。这样将dao层也测试到了,不需要每次测试前先跑sql。

3.用mock测试,隔离dao层,根据模拟出来的数据进行Assert判断。这里尽量保证dao层的正确性,如果需要dao层测试,再考虑。

第一种方法,操作繁琐,浪费时间。

第二种方法,在插入数据时需要保证外键的正确性,比第一种方法要好。

第三种,未测试dao层,比较快。

不知道你们的服务层怎么测试的?

加载中
0
kakai
kakai
如果做成纯数据接口服务就好做测试了,只需要编写对应的接口请求数据,而不需要编写繁琐的测试代码。
0
土拨薯啊
土拨薯啊

引用来自“BoXuan”的评论

如果做成纯数据接口服务就好做测试了,只需要编写对应的接口请求数据,而不需要编写繁琐的测试代码。

能详细一点说明一下吗?

0
kakai
kakai
而且做成接口服务的另外的好处就是方便压测,现在微服务架构的局部功能测试都是很方便的,测试部分无需程序人员做,仅需要测试人员按照接口定义的规范写一个请求数据就行了,而且业务逻辑以及数据库方面都能测试到位。按照你这个描述,感觉架构上就是古老级别的,后端包揽了很多前端的工作。
0
土拨薯啊
土拨薯啊

引用来自“BoXuan”的评论

而且做成接口服务的另外的好处就是方便压测,现在微服务架构的局部功能测试都是很方便的,测试部分无需程序人员做,仅需要测试人员按照接口定义的规范写一个请求数据就行了,而且业务逻辑以及数据库方面都能测试到位。按照你这个描述,感觉架构上就是古老级别的,后端包揽了很多前端的工作。

唉,jq+jsp+java7的管理系统,太落后了。

0
kakai
kakai
我一般做法就是统一接口api入口,而每个业务功能规定一个请求json格式和响应json格式,即一个请求和响应有一个前后端协定的基于json的通信协议。
0
土拨薯啊
土拨薯啊

引用来自“BoXuan”的评论

我一般做法就是统一接口api入口,而每个业务功能规定一个请求json格式和响应json格式,即一个请求和响应有一个前后端协定的基于json的通信协议。

那如果按照传统开发模式,哪种测试方法好一些。或者说还有没有更好的方法?

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部