【发布时间】:2012-12-17 09:03:47
【问题描述】:
我有一个烧瓶应用程序,它在before_filter 中建立数据库连接,与this 非常相似:
@app.before_request
def before_request():
g.db = connect_db()
现在:我正在编写一些单元测试,但我确实不希望它们进入数据库。我想用一个可以设置期望的模拟对象替换g.db。
我的测试使用app.test_client(),正如烧瓶文档here 中所展示的那样。示例测试类似于
def test(self):
response = app.test_client().post('/endpoint', data={..})
self.assertEqual(response.status_code, 200)
...
测试工作并通过,但它们正在访问数据库,正如我所说,我想用模拟对象替换 db 访问。我在 test_client 中看不到任何访问 g 对象或更改 before_filters 的方法。
【问题讨论】:
标签: python unit-testing mocking flask werkzeug