zoukankan      html  css  js  c++  java
  • Python Unittest与数据驱动

          python中有一个装饰器类DDT,通过它我们可以复用代码,达到数据驱动测试的目的,该类的官方介绍可以参考

    http://ddt.readthedocs.io/en/latest/index.html

        

          安装ddt方式很简单,直接在cmd命令行输入:pip install ddt ,完成安装即可。

          下面看一个简单的例子:

     1 import unittest
     2 from practise.myTestPractice.api_login import *
     3 import ddt
     4 
     5 
     6 @ddt.ddt
     7 class Praddt(unittest.TestCase):
     8 
     9     def setUp(self):
    10         print("my test start!")
    11 
    12     def tearDown(self):
    13         print("my test complete!")
    14 
    15     @ddt.data(["admin", "1qaz", "OK"],
    16               ["admin", "", "ERROR"],
    17               ["", "1qaz", "ERROR"],
    18               ["admin", "1234", "ERROR"],
    19               ["Admin", "1qaz", "ERROR"])
    20     @ddt.unpack
    21     def test_ddt(self, user, passwd, expect_value):
    22         result = Login.login(user, passwd)
    23         self.assertEqual(result, expect_value, msg=result)

        上面展示一个简单的测试类,测试对象是一个登录函数login,当用户、密码正确时,返回OK,用户或密码错误返回ERROR。我们在测试类上加上装饰器@ddt.ddt ,在测试方法上加上装饰器data和unpack,并把测试数据如上模式放在data中。

         执行测试:

         

        从unittest运行出的测试结果可以看出,我们共执行了5条测试用例,分别对应了data中的5条测试数据。也就是

    说我们通过一个测试方法就依次读取到了五条测试数据及其预期结果,代码量会精简不少。

  • 相关阅读:
    C++ allocator
    C++操作符重载
    Theron (C++ concurrency library) 读后感
    第五章 [BX]和loop指令
    第四章 第一个程序
    第三章 寄存器(内存访问)
    第二章 寄存器
    第一章
    jquery下ajax异步执行操作笔记
    CSSFlex布局
  • 原文地址:https://www.cnblogs.com/chengtch/p/6916821.html
Copyright © 2011-2022 走看看