2016-08-01 14 views
0

Ist es möglich, solche Testfälle durch den Einsatz von Decorator oder sonst etwas zu verkürzen?Dekorieren Sie zwei Funktionen?

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 = '[email protected]' 
     response = self._login(login=login) 
     self.assertEqual(status_code, 200) 
     self.assertEqual(response['resultText'], 
         'invalid password or login') 
     self.assertEqual(response['resultCode'], 55) 
+3

Sie immer durch die Gruppierung behauptet in einem einzigen beginnen Funktion – njzk2

Antwort

3

Ja. Versuchen Sie folgendes:

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 = '[email protected]' 
    response = self._login(login=login) 
    self.helper(response) 

oder, je nachdem, wie granular Ihre Tests sein müssen, und unter der Annahme, dass Ihr ._login() Methode verwendet None als Standardwerte:

def test_login_invalid(self): 
    for login, pwd in (('[email protected]', 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)