gpt4 book ai didi

django - 如何为 Django 测试模拟 Redis

转载 作者:IT王子 更新时间:2023-10-29 06:06:09 25 4
gpt4 key购买 nike

我正在尝试在我的 Django 应用程序中模拟 redis。我尝试了几种不同的方法,但似乎都不起作用。我做错了什么?

我的主要 redis 实例被调用:

redis_client = redis.from_url(os.environ.get("REDIS_URL"))

该实例被导入应用的其他部分以添加和检索数据。

在我的测试中,我尝试这样做:

import fakeredis
from mock import patch

class TestViews(TestCase):
def setUp(self):
redis_patcher = patch('redis.Redis', fakeredis.FakeRedis)
self.redis = redis_patcher.start()

self.redis.set('UPDATE', 'Spring')
print(redis_client.get('UPDATE'))

def tearDown(self):
self.redis_patcher.stop

运行测试时,我希望设置“UPDATE”变量。但是 redis_client 的每个实例都失败了,说服务器不可用。我如何模拟 redis 并设置值,以便在测试我的应用程序时可以使用它们?

最佳答案

你应该在使用它的地方模拟一个项目,而不是它来自的地方。

所以如果 redis_client 在这样的 View 中使用:

myapp/views.py

from somemodule import redis_client

def some_view_that_uses_redis(request):
result = redis_client(...)

然后在您的 TestViews 中,您应该像这样修补 redis_client:

class TestViews(TestCase):
def setUp(self):
redis_patcher = patch('myapp.views.redis_client', fakeredis.FakeRedis)
self.redis = redis_patcher.start()

关于django - 如何为 Django 测试模拟 Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49615815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com