处理依赖于调用代码的单元测试的最佳方法是什么,而代码依赖于当前应用程序的配置?
例如
code.py
from flask import current_app
def some_method():
app = current_app._get_current_object()
value = (app.config['APP_STATIC_VAR'])*10
return value
test_code.py
class TestCode(unittest.TestCase):
def test_some_method(self):
app = create_app('app.settings.TestConfig')
value = some_method()
self.assertEqual(10, value)
运行上面的测试我在执行app = create_app('app.settings.TestConfig')行时遇到'RuntimeError:在应用程序上下文之外工作'错误。
在测试期间调用app = create_app并不能解决问题。在我需要在应用程序中读取配置的情况下,单元测试的最佳方法是什么?
答案 0 :(得分:2)
当您调用some_method()来修复它以取代您的通话时,您正在使用在应用上下文中访问该应用:
with app.app_context():
value = some_method()