Android Studio JUnit单元测试
为什么要使用单元测试?
单元测试常常是程序员十分厌倦的。测试到底有什么用呢?测试不可能保证一个程序是完全正确的,但是测试却可以增强我们对程序完整的信心,测试可以让我们相信程序做了我们期望它做的事情。测试能够使我们尽早的发现程序的 bug 和不足。
一个 bug 被隐藏的时间越长,修复这个 bug 的代价就越大。在《快速软件开发》一书中已引用了大量的研究数据指出:最后才修改一个 bug 的代价是在 bug 产生时修改它的代价的10倍。
当然,我们主要讨论的是单元测试。单元测试是一个方法层面上的测试,也是最细粒度的测试。用于测试一个类的每一个方法都已经满足了方法的功能要求。在开发中,对于自己开发的模块,只有在通过单元测试之后,才能提交到 SVN 库 或者 Git 库。
在java中咱们有用过 JUnit 的 单元测试 ,那android 也是基于 java 语言编写的,所以也有个 JUnit的单元测试。
JUnit单元测试的流程
1.使用AndroidStudio进行单元测试,图中是我当前的目录结构,在main中Text类是实现计算的实体类,首先在Text中进行编写.编写一个加法的方法.
2.然后在ExampleUnitTest测试类中创建一个TextAdd方法,接下来创建一个要测试的类对象,然后实用类对象调用测试代码得到一个结果,用断言(断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。使用断言可以创建更稳定、品质更好且 不易于出错的代码。当需要在一个值为FALSE时中断当前操作的话,可以使用断言。单元测试必须使用断言(Junit/JunitX))给出预期的得到的值和运行测试代码得到的值进行对比.
3.在TextAdd出点击鼠标右键会有一个提示框,点击Run‘TextAdd()’
4.如上图所示,接下来就可以看到单元测试的结果了
process finished with exit code 0说明,程序正常运行完。
5.接下来我故意给个错误的预期值以便看红色警告效果
java.lang.AssertionError:断言错,用来指示一个断言失败的情况。
Expected预期
Actual实际
Click to see difference点击查看差异