快捷搜索:  汽车  科技

一般项目怎么进行junit单元测试(Junit4入门之如何编写好的测试类)

一般项目怎么进行junit单元测试(Junit4入门之如何编写好的测试类)③CORRECT边界条件②一般原则下面的规则内容,参考自单元测试之道Java版,这是一本十分值得入门单元测试的人学习的书。①明确我们的测试目的在测试之前,我们必须多动脑,先构思出整体的脉络,再具体问题具体分析。

Junit4入门之单元测试的编写原则

一般项目怎么进行junit单元测试(Junit4入门之如何编写好的测试类)(1)

同样跟上一篇一样,本篇是单元测试的编写原则,属于理论型知识。想快速开始学习使用的,可以暂时跳过本节,等后面入门使用后,再回来回顾这些理论知识。

1.少用输出语句

首先,我们需要少用输出语句。

在单元测试中,用输出语句的效率是很低的,如果你只写一个,有时间的话自然可以瞅两眼控制台,看看输出的日志是否是你想要看到的。但如果后期自动化的执行几十个上千个单元测试呢?难道你要每个都进去瞅瞅?

况且输出日志之类的也会影响单元测试的效率,在我们可以用断言来判定预期值的情况下,没有必要使用日志或控制台输出。

2.注重有效的单元测试

下面的规则内容,参考自单元测试之道Java版,这是一本十分值得入门单元测试的人学习的书。

①明确我们的测试目的

  • 该如何知道这段代码运行的是否正确?
  • 怎样对代码进行测试?
  • 想一想是否还有其他方面,可能会发生同样的错误。
  • 换个角度看,这个问题是否还会有其他发生错误的可能。

在测试之前,我们必须多动脑,先构思出整体的脉络,再具体问题具体分析。

②一般原则

  • 测试任务可能会发生错误并失败的地方
  • 测试运行时已经发生异常的地方
  • 单元测试的代码量,起码也接近于开发任务的代码量,甚至更多
  • 对于新开发的代码,在彻底的运行和证明无问题之前,都有发生错误的可能。
  • 对每次编译,都进行小规模测试。
  • 合并提交代码前,需要先做全面测试。

③CORRECT边界条件

  • 一致性(Conformance)——值是否符合预期的格式?
  • 有序性(Ordering)——一组值是该有序的,还是无序的?
  • 区间性(Range)——值是否在一个合理的最大值和最小值的范围之内?
  • 引用、耦合性(Reference)——代码是否引用了一些不受代码本身直接控制的外部因素?
  • 存在性(Existence)——值是否存在(例如,非null,非零,包含于某个集合等)
  • 基数性(Cardinality)——是否恰好有足够的值?
  • 时间性,绝对的或者相对的(Time)——所有事情是否都是按顺序发生的?是否在正确的时间?是否及时?

④覆盖率

这个④是我自己想起来提的,一个好的测试用例,必须要覆盖到绝大部分的可能性,如果我们的代码不复杂,完全可以争取到100%的覆盖率。

这个覆盖率就是指源代码被测试的比例和程度。

总结:

通过以上的单元测试原则,我们可以编写出更规范的UT代码,虽然看起来很浪费时间,但是磨刀不误砍柴工,这个道理大家应该都清楚。

猜您喜欢: