场景:针对入参个数相同,结果个数相同,内容不同的case,可以直接参数化使用,不用多个方法(冗余)
前提:安装 nose-parameterized模块
例1:
from parameterized import parameterized import unittest class TestAdd(unittest.TestCase): @parameterized.expand([ (1,1,2), (2,2,5), (3,3,6), ]) def test_add(self,a,b,c): self.assertEqual(a + b, c) if __name__ == '__main__': unittest.main(verbosity=2)
结果:
例2:
import unittest from parameterized import parameterized def login(username,password): if username == 'user1' and password =='1111': return True else: return False class Login(unittest.TestCase): @parameterized.expand([ ('user1','1111',True), ('user1','',False), ('','',False), ('wronguser','wrongpass',False) ]) def test_login(self,username,password,expected_result): actual_result = login(username,password) self.assertEqual(actual_result,expected_result) if __name__ == '__main__': unittest.main(verbosity=2)
结果: