zoukankan      html  css  js  c++  java
  • python中unittest单元测试框架使用ddt实现数据驱动-ddt、data、unpack使用简介

    ddt是第三方模块,需安装:pip install -i https://pypi.douban.com/simple ddt

    简单的demo介绍,包括data和unpack的使用:

    import unittest
    from ddt import ddt, data, unpack
    
    
    @ddt
    class TestAdd(unittest.TestCase):
        @data(*[[1, 2, 3], [4, 5, 9]])
        # data装饰方法,和for循环一样,变量列表中每个数据,然后传递给被装饰的方法的一个参数
        # 有几条数据,就执行几次用例
        # 第一次遍历[1,2,3],第二次遍历[4,5,9]
        def test_demo1(self, data):
            res = data[0] + data[1]
            expected = data[2]
            try:
                self.assertEqual(expected, res)
            except AssertionError as e:
                raise e
    
        @data(*[{'a': 0, 'b': 0, 'expected': 0}, {'a': 1, 'b': 1, 'expected': 2}])
        def test_demo2(self, data):
            res = data['a'] + data['b']
            expected = data['expected']
            try:
                self.assertEqual(expected, res)
            except AssertionError as e:
                raise e
    
        @data(*[[10, 20, 30], [40, 50, 90]])
        @unpack
        # 加unpack 根据逗号来进行拆分,变成了3个参数---测试方法要用3个参数来进行接收
        def test_demo3(self, a, b, expected):
            res = a + b
            try:
                self.assertEqual(expected, res)
            except AssertionError as e:
                raise e
    
        @data(*[{'a': 0, 'b': 0, 'expected': 0}, {'a': 1, 'b': 1, 'expected': 2}])
        @unpack
        # 如果是字典的话 要用他的key作为参数来进行数据接收
        def test_demo4(self, a, b, expected):
            res = a + b
            try:
                self.assertEqual(expected, res)
            except AssertionError as e:
                raise e
  • 相关阅读:
    网页解析Jsoup简单使用
    ios开发中加载的image无法显示
    数据懒加载
    ijkplayer
    ijkplayer的一些优化
    Ambiguous expansion of macro weakify和Ambiguous expansion of macro strongify的警告
    xcode11新项目删除main.storyboard 两种方法
    iOS
    iOS
    iOS 12中获取WiFi的SSID
  • 原文地址:https://www.cnblogs.com/benben-wu/p/12145661.html
Copyright © 2011-2022 走看看