zoukankan      html  css  js  c++  java
  • unittest前置条件、后置条件、装饰器、断言

    一、前置和后置

    1.setUp:在写测试用例的时候,每次操作其实都是基于打开浏览器输入对应网址这些操作,这个就是执行用例的前置条件。

    2.tearDown:执行完用例后,为了不影响下一次用例的执行,一般有个数据还原的过程,这就是执行用例的后置条件。

    3.前置和后置都是非必要的条件,如果没有也可以写pass

    import unittest,time,ddt
    class Test(unittest.TestCase):  # 定义一个测试的类,并继承unittest.TestCase这个类
        @classmethod  # 装饰器,所有用例执行前执行一次
        def setUpClass(cls):  
            print("start!")
    
        @classmethod  # 装饰器,所有用例执行后执行一次
        def tearDownClass(cls):
            time.sleep(1)
            print("end!")
    
        def setUp(self):  # 每条用例执行前执行一次
            print("开始")
    
        def tearDown(self):  # 每条用例执行后执行一次
            print("结束")
    
        def test01(self):  # 测试用例的名称以test开头,每条函数相当于一条测试用例
            print("执行测试用例01")
            a = 1
            b = 1
            self.assertEqual(a, b) # 判断a和b是否相等
    
        def test03(self):
            print("执行测试用例03")
            a = "8"
            b = "hello world!"
            self.assertIn(a, b)  # 判断a是否在b中
    
        def test02(self):
            print("执行测试用例02")
            a = True
            self.assertTrue(a)  # 判断a是True
    if __name__=="__main__":
    
        unittest.main(verbosity=2)
        # runner = unittest.TextTestRunner()
        # runner.run()
    运行结果如下:
      test01 (__main__.Test) ... ok
      test02 (__main__.Test) ... ok
      test03 (__main__.Test) ... FAIL
      start!
      开始
      执行测试用例01
      结束
      开始
      执行测试用例02
      结束
      开始
      执行测试用例03
      结束
      end!

    二、装饰器

    1、setUp与setUpClass区别

       setup():每个测试case运行前运行
       teardown():每个测试case运行完后执行
       setUpClass():必须使用@classmethod 装饰器,所有case运行前只运行一次
       tearDownClass():必须使用@classmethod装饰器,所有case运行完后只运行一次

    2、@是修饰符,classmethod是python里的类方法

  • 相关阅读:
    mac 鼓捣php 多版本切换
    thinkPHP 导出excel 发布正式环境net::ERR_INVALID_RESPONSE
    js 计时显示 倒着 正者 都行
    LNMP 下 php.ini 文件修改后不生效
    Jquery 遍历数组之$().each方法与$.each()方法介绍
    js 去掉字符串最后一个逗号
    js拼接字符串时,字符串首出现undefined的问题
    PHP 暂停函数 sleep() 与 usleep() 的区别
    在IDEA里创建web项目,以及web 项目部署
    spring容器和springmvc容器,以及web容器的关系
  • 原文地址:https://www.cnblogs.com/jialeliu/p/14115081.html
Copyright © 2011-2022 走看看