资料来源

Java 的 TestNG 有参数化功能,最近在学 Python,所以想试试 Python 能否参数化。
搜罗了一下资料,找到 parameterized 模块。主要参考资料https://www.cnblogs.com/fnng/p/6580636.html?utm_source=tuicool&utm_medium=referral

环境

简单实例

在原资料的基础上添加了一个调用方法时的实例

import unittest
from unittest_demo.module import Calculator
from nose_parameterized import parameterized

class TestAdd0(unittest.TestCase):
    @parameterized.expand([
        ('x',4,5,9),
        ('y',5,6,11),
    ])

    def test_add_0(self,name,a,b,c):
        # 函数在断言里面
        self.assertEqual(a + b, c)

class TestAdd(unittest.TestCase):
    @parameterized.expand([
        ('x', 4, 5, 9),
        ('y', 5, 6, 11),
        ('z', 6, 6, 12),
    ])

    def test_add(self,name,a,b,c):
        # 调用方法
        cal = Calculator(a, b).add()
        self.assertEqual(cal, c)

if __name__ == '__main__':
    unittest.main(verbosity=2)  # verbosity表示测试结果的信息复杂度

注意

Pycharm 执行时注意鼠标需要放在 unittest.main(verbosity=2) 代码块的位置,否则会报错:TypeError: 'NoneType' object is not callable

下次补充接口测试实例


↙↙↙阅读原文可查看相关链接,并与作者交流