我有一个Flask应用程序,其中一些页面内容来自全局变量。我试图建立一些单元测试断言数据,但我似乎无法得到,甚至一个局部变量的工作:如何在单元测试(Flask,Python3,Nose2)中声明变量内容
TEST_STRING = foo
self.assertIn(b['TEST_STRING'], response.data)
失败:
NameError: name 'b' is not defined
如果我引用普通变量:
self.assertIn(TEST_STRING, response.data)
我得到预期的失效:
TypeError: a bytes-like object is required, not 'str'
如果我将变量数据硬编码到测试中,测试会成功,但如果变量发生更改,我宁愿不必更新测试。我在这里错过了什么?
_我在这里错过了什么?_对于初学者,您错过了向您显示定义'b'的代码的部分。 –
@JohnGordon在我的第一个代码块中,'b'就在那里,这是开头括号后面的第一个字符。它没有在别处定义,因为它是[字符串文字](https://docs.python.org/3.3/reference/lexical_analysis.html#string-and-bytes-literals)。我相信你的倒票是错误的。 – mrrg
这就是其中b是_referenced_的地方,但是你从来没有向我们展示过b是_defined_,即'b ='和/或'全局b'。 (我没有downvote;我只是评论。) –