2016-03-21 8 views
-1

Ich versuche, eine Klasse zu importieren, als eine Methode (production_warning) aus dieser Klasse zu testen, indem ich die Werte 'stage', 'prod' übergebe, um zu sehen, ob sie die erwarteten Ergebnisse liefert.Unit-Test geschützte Klassenmethoden in Python?

Ich verwende eindeutig behaupten völlig falsch hier, wie kann ich richtig erreichen, was ich versuche mit Assert zu tun.

+2

Es gibt keine solche Dinge wie „geschützte Klasse Methoden "in Python. –

Antwort

1

Um dies zu tun, mit behauptet, würden Sie Ihre assert-Anweisungen so etwas wie ändern möchten:

assert test.production_warning('stage') is not errors 
assert test.production_warning('prod') contains "warning" 

Ich würde sehr empfehlen, wenn das Python unit test Modul sucht in statt.

In dem Fall, dass Sie so etwas wie dies wünschen würden (man beachte runnerData wird in Rahmen sein müssen, ich bin gerade aus Ihrer Frage Kopieren oben):

import runner 
import unittest 

class TestRunner(unittest.TestCase): 

    def setUp(self): 
     self.test = runnerData(force_redeploy=False, pfactor=None, preview=True) 

    def test_production_warning(self): 
     self.assertTrue(self.test.production_warning('stage') is not errors) 
     self.assertTrue(self.test.production_warning('prod') contains "warning") 

if __name__ == '__main__': 
    unittest.main() 
+0

Dies ist eigentlich, was ich wollte, ich versuche unittest zu verwenden, aus dem Lesen der Dokumente kann ich nicht herausfinden, die sauberste Möglichkeit, diese beiden Zeilen mit unittest – david

+0

zu tun Ich habe die Antwort erweitert, um ein Beispiel mit unittest zu geben - Hoffentlich sollte das helfen. –

+0

Kann ich genau dasselbe machen, aber ohne die Klasse? – david