Ich habe eine Flask-Anwendung, in der einige Seiteninhalte von einer globalen Variable kommen. Ich versuche, einige Unit-Tests einzurichten, um die Daten geltend machen, aber ich kann nicht einmal eine lokale Variable zur Arbeit zu kommen scheinen:Wie man variablen Inhalt im Komponententest behauptet (Flask, Python3, Nose2)
TEST_STRING = foo
self.assertIn(b['TEST_STRING'], response.data)
nicht mit:
NameError: name 'b' is not defined
Wenn ich Referenz die einfache Variable:
self.assertIn(TEST_STRING, response.data)
ich den erwarteten Ausfall:
TypeError: a bytes-like object is required, not 'str'
Der Test ist erfolgreich, wenn ich die variablen Daten in den Test festcode, aber ich würde den Test lieber nicht aktualisieren müssen, wenn sich die Variable ändert. Was fehlt mir hier?
_Was fehlt mir hier? _ Für den Anfang fehlt Ihnen der Teil, wo Sie uns den Code zeigen, wo 'b' definiert ist. –
@JohnGordon das 'b' ist genau dort in meinem ersten Codeblock, das erste Zeichen nach den öffnenden Klammern. Es ist nicht anderswo definiert, da es ein [String-Literal] ist (https://docs.python.org/3.3/reference/lexical_analysis.html#string-and-bytes-literals). Ich glaube, Ihre Abstimmungen waren falsch. – mrrg
Hier ist b _referenced_, aber Sie haben uns nie gezeigt, wo b _defined_, d. H. 'B =' und/oder 'global b' ist. (Und ich habe nicht runtergestimmt; ich habe nur kommentiert.) –