Python 装饰两个功能?

Python 装饰两个功能?,python,python-unittest,web-api-testing,Python,Python Unittest,Web Api Testing,是否可以通过使用decorator或其他方法缩短此类测试用例 def test_login_invalid_pwd(self): password = '12345' response = self._login(pwd=password) self.assertEqual(status_code, 200) self.assertEqual(response['resultText'],

是否可以通过使用decorator或其他方法缩短此类测试用例

    def test_login_invalid_pwd(self):
        password = '12345'
        response = self._login(pwd=password)
        self.assertEqual(status_code, 200)
        self.assertEqual(response['resultText'],
                         'invalid password or login')
        self.assertEqual(response['resultCode'], 55)

    def test_web_login_invalid_login(self):
        login = 'my_1258@'
        response = self._login(login=login)
        self.assertEqual(status_code, 200)
        self.assertEqual(response['resultText'],
                         'invalid password or login')
        self.assertEqual(response['resultCode'], 55)
对。试试这个:

def helper(self, response):
    self.assertEqual(status_code, 200)
    self.assertEqual(response['resultText'],
                     'invalid password or login')
    self.assertEqual(response['resultCode'], 55)

def test_login_invalid_pwd(self):
    password = '12345'
    response = self._login(pwd=password)
    self.helper(response)

def test_web_login_invalid_login(self):
    login = 'my_1258@'
    response = self._login(login=login)
    self.helper(response)
或者,根据测试需要的粒度,并假设您的
\u login()
方法使用
None
作为默认值:

def test_login_invalid(self):
    for login, pwd in (('my_1258@', None), (None, '12345')):
        response = self._login(login=login, pwd=pwd)
        self.assertEqual(status_code, 200)
        self.assertEqual(response['resultText'],
                         'invalid password or login')
        self.assertEqual(response['resultCode'], 55)
对。试试这个:

def helper(self, response):
    self.assertEqual(status_code, 200)
    self.assertEqual(response['resultText'],
                     'invalid password or login')
    self.assertEqual(response['resultCode'], 55)

def test_login_invalid_pwd(self):
    password = '12345'
    response = self._login(pwd=password)
    self.helper(response)

def test_web_login_invalid_login(self):
    login = 'my_1258@'
    response = self._login(login=login)
    self.helper(response)
或者,根据测试需要的粒度,并假设您的
\u login()
方法使用
None
作为默认值:

def test_login_invalid(self):
    for login, pwd in (('my_1258@', None), (None, '12345')):
        response = self._login(login=login, pwd=pwd)
        self.assertEqual(status_code, 200)
        self.assertEqual(response['resultText'],
                         'invalid password or login')
        self.assertEqual(response['resultCode'], 55)

您始终可以从将断言分组到单个函数开始。您始终可以从将断言分组到单个函数开始