我有一个建立在一个数据库连接的烧瓶中的应用程序before_filter,非常类似于此:
@app.before_request
def before_request():
g.db = connect_db()
Run Code Online (Sandbox Code Playgroud)
现在:我正在编写一些单元测试,我不希望它们访问数据库.我想替换g.db一个我可以设定期望的模拟对象.
我的测试中使用app.test_client(),足以证明烧瓶文档中的位置.一个示例测试看起来像
def test(self):
response = app.test_client().post('/endpoint', data={..})
self.assertEqual(response.status_code, 200)
...
Run Code Online (Sandbox Code Playgroud)
测试工作并通过,但他们正在访问数据库,正如我所说,我想用模拟对象替换数据库访问.我没有看到任何方法test_client来访问该g对象或更改before_filters.