让我们说模块a代码:
from django.conf import settings
print settings.BASE_URL # prints http://example.com
Run Code Online (Sandbox Code Playgroud)
在tests.py我想嘲笑BASE_URL到http://localhost
我尝试过以下方法:
with mock.patch('django.conf.settings.BASE_URL', 'http://localhost'):
pass
with mock.patch('a.settings.BASE_URL', 'http://localhost'):
pass
from a import settings
with mock.patch.object(settings, 'BASE_URL', 'http://localhost'):
pass
import a
with mock.patch.object(a.settings, 'BASE_URL', 'http://localhost'):
pass
Run Code Online (Sandbox Code Playgroud)
以上都没有奏效.
尝试使用上下文管理器设置()内置django.
with self.settings(BASE_URL='http://localhost'):
# perform your test
Run Code Online (Sandbox Code Playgroud)
https://docs.djangoproject.com/en/dev/topics/testing/tools/#django.test.SimpleTestCase.settings
您还可以在单个测试函数或整个测试类上使用以下装饰器。
@override_settings(BASE_URL='http://localhost')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2499 次 |
| 最近记录: |