zoukankan      html  css  js  c++  java
  • python学习笔记之——unittest框架

    unittest是python自带的单元测试框架,尽管其主要是为单元测试服务的,但我们也可以用它来做UI自动化测试和接口的自动化测试。

    unittest框架为我们编写用例提供了如下的能力

    • 定义用例的能力。unittest框架有一套固有套路,可以让我们定义测试用例时更加简单和统一

    • 断言的能力。unittest框架提供了一系列的断言

    • 各种执行策略。通过test suit或者扩展的方式,我们可以自定义用例执行的策略

    举例:

    import unittest
    class TestCase(unittest.TestCase):
        def setUp(self):
            self.str1="abc"
    
        def testC(self):
            self.assertEqual("ABC",self.str1.upper())
    
    if __name__=="__main__":
        unittest.main()

    例子说明:

    import unittest

    首先要导入unittest库,导入之后才可使用

    class TestCase(unittest.TestCase):

    定义测试类,类型规范是搜字母需要大写。所有的测试类都必须直接或间接的继承自unittest.TestCase

    def setUp(self):
            self.str1="abc"

    setUp(self)方法是一个钩子方法,在每个测试用例执行之前都会执行一次,是做数据初始化的好地方。在上面的例子里,我们为每一个测试方法都定义了被测对象,self.test_string

    def testC(self):
            self.assertEqual("ABC",self.str1.upper())

    这里定义了一个名为testC的测试方法,这个方法就是一个测试用例。注意,只有方法名以test开头的方法才是测试用例。self.assertEqual是一个断言方法,作用是如果第一个参数跟第二个参数相等,那么用例通过,否则用例失败,并在测试报告中打印出错误原因。上面例子中self.str1.upper()先把abc转化成大写的ABC,然后合ABC对比,结果是相等的。

    if __name__=="__main__":
        unittest.main()

    上面的代码表示,如果直接执行该python文件的话,就运行所有的测试类里的测试用例,也就是运行所有的以test开头的方法。

    总结

    使用unittest的话需要记住下面的几点:

    • 导入unittest
    • 定义继承自unittest.TestCase的测试类
    • 定义以test开头的测试方法,这个方法就是测试用例,你可以在一个类里定义n个测试用例
    • 断言
    • unittest.main()是执行测试用例最简单的方式
  • 相关阅读:
    Java 线程:(一)
    RK:Webview、Chrome
    CocosCreator 加载Bundle里的Prefab
    Canvas 绘画
    CocosCreator 要用3D节点实现skewX
    Unity 动态创建网格
    凹多边形三角剖分
    UnityHub 登录失败
    浮点数
    八皇后问题(回溯算法)
  • 原文地址:https://www.cnblogs.com/pachongshangdexuebi/p/8512827.html
Copyright © 2011-2022 走看看