unittest前置条件、后置条件、装饰器、断言

一、前置和后置

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

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

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

import unittest,time,ddt
class Testunittest.TestCase):  # 定义一个测试的类,并继承unittest.TestCase这个类
    @classmethod  # 装饰器,所有用例执行前执行一次
    def setUpClasscls):  
        print"start!")

    @classmethod  # 装饰器,所有用例执行后执行一次
    def tearDownClasscls):
        time.sleep1)
        print"end!")

    def setUpself):  # 每条用例执行前执行一次
        print"开始")

    def tearDownself):  # 每条用例执行后执行一次
        print"结束")

    def test01self):  # 测试用例的名称以test开头,每条函数相当于一条测试用例
        print"执行测试用例01")
        a = 1
        b = 1
        self.assertEquala, b) # 判断a和b是否相等

    def test03self):
        print"执行测试用例03")
        a = "8"
        b = "hello world!"
        self.assertIna, b)  # 判断a是否在b中

    def test02self):
        print"执行测试用例02")
        a = True
        self.assertTruea)  # 判断a是True
if __name__=="__main__":

    unittest.mainverbosity=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里的类方法

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注