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

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

测试框架推荐?

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

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

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

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

4532 次点击
所在节点    程序员
27 条回复
thetbw
2021-07-01 19:56:41 +08:00
同求,公司没测试
joesonw
2021-07-01 21:47:37 +08:00
看测试覆盖率呀。设立一个目标覆盖率,然后测试达标呗。
dustinth
2021-07-01 21:50:51 +08:00
先看看这本书. Unit Testing Principles, Practices, and Patterns
MeatIndustry
2021-07-01 22:55:59 +08:00
推荐了解一下测试驱动开发 TDD 。用 Mockito,Junit TDD 一个 SpringBoot 项目,你上面的问题都能多少得到解答。
scxiazi
2021-07-01 22:58:49 +08:00
junit
xy90321
2021-07-01 23:26:36 +08:00
传统软件企业
waterfall 开发项目
junit ➕ dbunit ➕ jmockit
要求 C1➕C2 100%覆盖
Cbdy
2021-07-01 23:59:09 +08:00
Spring 项目:
testImplementation 'org.springframework.boot:spring-boot-starter-test'

非 Spring 项目:
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
stimw
2021-07-02 00:31:51 +08:00
记得很多年前有篇文章叫 TDD 已死。。
Rocketer
2021-07-02 07:32:41 +08:00
先写测试程序,输入是什么,输出应该是什么,都准备好。然后正式开始写程序,自己的程序必须能通过自己的测试,才能移交给下一环节。

问题是写单元测试程序的时间比写正是程序的时间还长,出错的程序又是少数,所以虽然书上说单元测试能节约开发时间,但我们没人信。老板不要求,绝对没人写。
micean
2021-07-02 08:42:22 +08:00
crud 不写什么单元测试,毫无意义
但是写 lib utils 的一定要写单元测试
dalaomai
2021-07-02 09:14:05 +08:00
@micean 请教为啥 CRUD 单元测试毫无意义?
X0ray
2021-07-02 09:18:16 +08:00
@xy90321 请教下,C1 和 C2 分别是啥?
X0ray
2021-07-02 09:19:02 +08:00
@thetbw 单元测试是开发的职责
micean
2021-07-02 09:23:21 +08:00
@dalaomai

直接操作数据库检查 sql,mock 没有多大意义
MeatIndustry
2021-07-02 09:23:24 +08:00
@stimw 不光 TDD,还有其他敏捷实践,例如结对编程,也有很大争议。一个个看起来十分美好,实际上做起来寸步难行。在公司就试过 TDD,根本坚持不下去
X0ray
2021-07-02 09:28:13 +08:00
通常来说,以 java web 项目为例,我都是在 service 这一层来做单元测试。其他的工具类也会写下。远远达不到 100%的覆盖率。
我还比较好奇,那些大厂是不是都是严格执行覆盖率审查的。
Jiangyf
2021-07-02 10:45:48 +08:00
@thetbw 唉,可要命了~~
Jiangyf
2021-07-02 10:47:34 +08:00
@dustinth 看到英文书名就头大~~
Jiangyf
2021-07-02 10:48:42 +08:00
@MeatIndustry 我觉得测试驱动开发,有一说一,很多时候受制于时间、成本、进度三座大山,没多少人 care 测试这一环节。
Jiangyf
2021-07-02 10:49:33 +08:00
@Rocketer 深有体会~

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

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

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

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

© 2021 V2EX