单元测试 是测试什么_什么是单元测试?

单元测试 是测试什么

d77a8686052518a972533d3124229a88_zps8a546cc7 是什么使单元测试与其他测试不同? 他们充满了失败。

转到Wikipedia定义 ,您将得到一个模糊且无益的描述,并进行总结:它测试了一小段代码。

用什么语言? 什么小? 那为什么重要呢?



我觉得在软件中很多时候,我们宁愿专注于机制,而不是目标。 例如,当我们实际上想要隔离(这是我们经过测试的代码所需要的)时,我们谈论了模拟(如何做)。

首先,让我们来看一个好的单元测试的目标:

  1. 遇到实际问题时快速告诉您
  2. 从“发现问题”到“解决问题”尽快帮助您

让我们使用FAIL仔细看看。

功能性 :单元测试是一种传感器,可以告诉我们以前的工作功能是否不再起作用。 尽管每种测试都需要反馈,但关键是功能,以及代码方面的逻辑–逻辑:代码中的if-thens,try-catching和工作流。

准确性 :单元测试应该仅出于两个原因而失败:我们破坏了某些东西并且应该修复代码(一个错误),或者我们破坏了一些东西并且应该修复测试(一个变更的需求)。 在这两种情况下,我们都会做有价值的工作。 什么时候不值钱? 示例:如果测试检查了内部实现,并且我们更改了实现但未更改功能,则这不算是真正的问题。 该代码仍按其原意进行,功能未更改。 但是现在我们需要修复测试,这很浪费。 我们不喜欢浪费。

即时 :单元测试可以快速运行。 数以千计的单元测试套件可以在几秒钟或几分钟内运行。 应用细粒度传感器阵列的成功取决于规模的快速性。 通常,这会将测试代码转换为简短且孤立的代码。

定位器:出现问题时,我们需要快速解决。 它的一部分是测试少量代码。 然后,我们可以在测试中做更多的事情来帮助我们解决问题。 但是,我们需要在编写测试的上下文之外进行思考。 在两次搬迁公司之后,其他人可能会在一年或更长时间后打破它。 换句话说,我们要留下纸迹以寻找其他人的特定问题。 为此,我们使用准确的命名,可读的测试代码,在特定情况下测试一小部分代码,与任何不确定或非特定的依赖项隔离以及许多其他技巧,这些技巧将有助于我们不幸的开发人员快速解决问题。

请注意,这些属性均与编写测试的经历无关。 这是要从那里获得最大价值。

写测试的唯一价值,就是当代码是还没有。 是的,在TDD中。 在这种情况下,您将获得上述所有内容,以及对设计和安全增量进度的了解。

所有其他种类的测试(也很有价值)都没有这些特征:集成测试不会找到有问题的代码。 UI测试很脆弱。 完整的系统测试很慢。 非功能测试只是为您提供反馈,而探索性测试与功能的正确性无关,而是与业务价值有关(至少应该如此)。

如果您的测试通过了失败测试,​​则它是单元测试。

图片来源

翻译自: https://www.javacodegeeks.com/2014/04/what-is-a-unit-test.html

单元测试 是测试什么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值