Java 的 TestNG 有参数化功能,最近在学 Python,所以想试试 Python 能否参数化。
搜罗了一下资料,找到 parameterized 模块。主要参考资料https://www.cnblogs.com/fnng/p/6580636.html?utm_source=tuicool&utm_medium=referral。
在原资料的基础上添加了一个调用方法时的实例
被测试方法 module.py
class Calculator():
def __init__(self, a, b):
    self.a = int(a)
    self.b = int(b)
def add(self):
    return self.a + self.b
测试 test.py
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
下次补充接口测试实例