zoukankan      html  css  js  c++  java
  • unittest框架

    unittest框架

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

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

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

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

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

    简单的例子

    import unittest
    
    class StringTestCase(unittest.TestCase):
        def setUp(self):
            # Arrange
            self.test_string = "This is a string"
    
        def testUpper(self):
            # Act and Assert
            self.assertEqual("THIS IS A STRING", self.test_string.upper())
    
    if __name__ == '__main__':
        unittest.main()

    剖析

    import unittest

    导入unittest库,不导入就没办法使用,好比手机如果要使用某个app就必须先安装该app一样,是套路,记住就好。

    class StringTestCase(unittest.TestCase):

    定义测试类,初学者看到这一行就害怕,其实大可不必。这还是套路,测试类的名字你可以随意取,当然了首字母最好大写,这样更符合规范一些。所有的测试类都必须直接或间接的继承自unittest.TestCase类。总之,这还是套路,记住就好。

    def setUp(self):
        # Arrange
        self.test_string = "This is a string"

    继续套路。setUp(self)方法是一个钩子方法,在每个测试用例执行之前都会执行一次,是做数据初始化的好地方。

    在上面的例子里,我们为每一个测试方法都定义了被测对象,self.test_string

    def testUpper(self):
        # Act and Assert
        self.assertEqual("THIS IS A STRING", self.test_string.upper())

    套路继续。这里定义了一个名为testUpper的测试方法,这个方法就是一个测试用例。

    注意,只有方法名以test开头的方法才是测试用例

     self.assertEqual 是一个断言方法,作用是如果第一个参数跟第二个参数相等,那么用例通过,否则用例失败,并在测试报告中打印出错误原因。上面的例子里,我们判断 self.test_string.upper() 方法会将"This is a string"字符串转换成"THIS IS A STRING"

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

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

    总结

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

    • 导入unittest
    • 定义继承自unittest.TestCase的测试类
    • 定义以test开头的测试方法,这个方法就是测试用例,你可以在一个类里定义n个测试用例
    • 断言
    • unittest.main()是执行测试用例最简单的方式

    转载原地址:http://www.testclass.net/interface/unittest

    《任何事都是有可能的。所以别放弃,相信自己,你可以做到的。---->> 闯 !》
  • 相关阅读:
    分享个好的笔记软件:为知笔记
    Mysql的一些常用方法
    从0到1体验Jenkins+Docker+Git+Registry实现CI自动化发布
    【超级详细】使用 PXE+Kickstart 实现无人值守批量部署系统
    Linux杀不死的进程之CPU使用率700%
    Hadoop 从节点的 NodeManager 无法启动
    Phoenix 无法启动报错: java.net.BindException: Address already in use
    CentOS7 配置 SSH监听多个端口方法
    Linux CentOS 防止SSH暴力破解
    Windows出现“引用账户被锁定,且暂时无法登录”解决方法
  • 原文地址:https://www.cnblogs.com/dingchuang666/p/14447266.html
Copyright © 2011-2022 走看看