不懂就问,各位都是怎么进行单元测试(UT)的?

2021-07-01 17:34:55 +08:00
 Jiangyf

测试框架推荐?

单元测试的要求是啥样的呢?

如何去组织和具体实施,有木有啥具体标准之类的?

关于测试的其他(性能测试等),如何成为一个合格的测试?

小弟 Java curd boy,希望从事相关行业的大佬不吝赐教,小弟感激涕零,蟹蟹~~

4559 次点击
所在节点    程序员
27 条回复
Jiangyf
2021-07-02 10:52:35 +08:00
@stimw 没有技术或理论是银弹~
EKkoGG
2021-07-02 11:05:20 +08:00
我也问过类似问题,但是感觉 web api 的单元测试资料好少。。。就没人弄个 demo,看看怎么实现的吗?
xy90321
2021-07-02 13:40:09 +08:00
z740713651
2021-07-02 17:28:55 +08:00
python 的我比较熟。。。

python 可以试试这个项目模版生成的项目框架去填业务代码
[https://github.com/AngusWG/cookiecutter-py-package]


```
pip install cookiecutter
cookiecutter https://github.com/AngusWG/cookiecutter-py-package.git
```

单元测试的有 pytest (可选 doctest) doctest 写函数 docstring 用着比较开心的 看着也舒服

然后 CICD 得搞上
每次提交的时候 都能检查代码覆盖率 函数运行速度 响应时间等等
在模版里有都有案例

然后是 python 的代码风格
迫于没得选就 black 代码风格测试

- 单元测试的要求是啥样的呢?
代码覆盖率 80+把
高一点要求 100% 不过分的
框架会帮你多跑几遍函数 在单元测试里设置平均时长和最大时长啥的就好了

- 如何去组织和具体实施,有木有啥具体标准之类的?
提交代码 CICD 过上述的测试+代码风格测试就差不多了 系统级测试让测试工程师去做
标准之类这种可以看开源项目的要求
github 开源项目基本上 Action 都会有提交时要过的测试命令 照着抄就好了
( python 里是 flake8 模版里还有很多奇奇怪怪的插件 也可以都用上)

- 关于测试的其他(性能测试等),如何成为一个合格的测试?
这个我也不会。。。。

写完了发现可能答非所问....大佬们随便看看就好
inhzus
2021-07-02 19:05:42 +08:00
单测增量行覆盖率 80%,junit4 + powermock,需求不紧急的情况下严格 TDD,CRUD 的话确实没什么意义
yjxjn
2021-07-03 00:17:57 +08:00
500 强外企路过,公司要求,开发写完代码,开发做 JUNIT 测试,功能测试看情况,如果测试不够,就开发一块做了。
junit 的要求是用 excel 投入数据,然后用 excel 做期待数据和期待值等等,assert 异常这种的之类的,再就是要求覆盖率,必须达到 C1 级别,目标是 100%全覆盖。branch 都要进去,eclipse 的 coverage 要去看 branch 覆盖率,而不是 instruction 的覆盖率,如果达不到 100%,需要分析一下,到底是设计的业务有问题还是代码的问题。
Jiangyf
2021-07-05 10:05:21 +08:00
@inhzus CRUD 意义不大是不是在于可预见结果就是成功或者失败,所涵盖分支的情况可能没有那么复杂,相比复杂的接口实现逻辑,单纯的 CRUD 显得没有那么的重要了,这样理解可以吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/786964

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX