什么是单元测试
在计算机编程中,单元测试是一种软件测试方法,通过该方法可以测试源代码的各个单元以确定它们是否适合使用。 单元是最小的可测试软件组件, 它通常执行单个内聚功能。单元测试就是指对这个最小可测试组件——即单元进行检查和验证。
单元体量小,因此比大块代码更容易设计、执行、记录和分析测试结果。 通过单元测试发现的缺陷很容易定位,并且相对容易修复。单元测试的目标是将程序分离成各自独立的部分,并测试各个部分是否正常工作。它将可测试软件的最小部分与代码的其余部分隔离开来,并确定其行为是否与预期的完全一致。单元测试能在使用过程中发现很多缺陷,在这种过程中证明自身的价值。它实现了测试过程的自动化,减少了发现应用程序中更复杂部分中包含的错误的困难,并且由于可以关注到每一个单元而提高测试覆盖率。
单元测试工具
常见单元测试框架有JUnit, TestNG, PHPUnit, PyTest, Jest, CppUnit, GTest, QTest 等八种,目前国产主流项目管理软件禅道全面集成这八种单元测试框架,打通持续集成闭环,将测试用例细分了单元测试用例和功能测试用例,可以直接在禅道页面上导入各种各样的单元测试框架的执行结果。这八种单元测试框架通过禅道ZTF与Jenkins持续集成功能打通。用户发起任务后,通过ZTF自动执行测试脚本,把单元测试的结果回传给禅道,二者合作打通了持续集成闭环,打通了项目管理工具和持续集成工具之间的沟壑。
举例说明:
这里拿“android的ScrollView滚动布局获取数据基础方法”这个示例中利用HttpUtils工具类获得json数据为例,利用单元测试进行测试。
首先,在AndroidManifest.xml清单文件中使用鼠标点击的方法添加android.test.InstrumentationTestRunner(如果使用代码容易出错),之后再添加Instrumentation的Name和Target package,全部自动完成这一过程。
然后在AndroidManifest中使用Alt+/自动添加单元测试包,单元测试准备工作完成。
在第二步中targetPackage指定的包名com.example.layout,意思是在com.example.layout包下所有包下的类都可以进行单元测试,所以在该包下建立一个测试类MyTest,并继承AndroidTestCase,写一个testjson()方法,用于测试android语句是否能正确输出json数据。写好测试代码之后,执行测试代码。如果出现“绿色”,则测试成功,这样就完成了单元测试。