如何使用英特尔®oneAPI工具实现PyTorch 优化,直播火热报名中>>>
刚入行没多久,要写单元测试,目前阶段先针对服务层进行测试。
3种方法:
1.用真实数据库测试增删查改,dao层也一起测试了。因为数据库内容随时在变,每次测试前先针对每个测试方法跑一下sql脚本查出结果,再修改单测方法的Assert,然后跑单测。如果有50个单测,就要跑50遍不同sql,修改50个单测方法。如果需要数据,先插入一些数据。(这是我们组长要求的做法。)
2.测试前清空相关表的内容,再插入数据,根据插入的数据进行Assert。这样将dao层也测试到了,不需要每次测试前先跑sql。
3.用mock测试,隔离dao层,根据模拟出来的数据进行Assert判断。这里尽量保证dao层的正确性,如果需要dao层测试,再考虑。
第一种方法,操作繁琐,浪费时间。
第二种方法,在插入数据时需要保证外键的正确性,比第一种方法要好。
第三种,未测试dao层,比较快。
不知道你们的服务层怎么测试的?
引用来自“BoXuan”的评论
如果做成纯数据接口服务就好做测试了,只需要编写对应的接口请求数据,而不需要编写繁琐的测试代码。能详细一点说明一下吗?
引用来自“BoXuan”的评论
而且做成接口服务的另外的好处就是方便压测,现在微服务架构的局部功能测试都是很方便的,测试部分无需程序人员做,仅需要测试人员按照接口定义的规范写一个请求数据就行了,而且业务逻辑以及数据库方面都能测试到位。按照你这个描述,感觉架构上就是古老级别的,后端包揽了很多前端的工作。唉,jq+jsp+java7的管理系统,太落后了。
引用来自“BoXuan”的评论
我一般做法就是统一接口api入口,而每个业务功能规定一个请求json格式和响应json格式,即一个请求和响应有一个前后端协定的基于json的通信协议。那如果按照传统开发模式,哪种测试方法好一些。或者说还有没有更好的方法?