如何在Python中模拟Redis客户端?

侯曼

我只是发现,由于开发人员并未在测试中嘲笑对Redis客户端的依赖关系,因此许多单元测试都失败了。我正在努力解决这个问题,但我自己遇到了困难。

该方法写入redis客户端:

redis_client = get_redis_client()
redis_client.set('temp-facility-data', cPickle.dumps(df))

稍后在断言中检索结果:

res = cPickle.loads(get_redis_client().get('temp-facility-data'))
expected = pd.Series([set([1, 2, 3, 4, 5])], index=[1])
assert_series_equal(res.variation_pks, expected)

我成功修补了redis客户端的get()和set()。

@mock.patch('redis.StrictRedis.get')
@mock.patch('redis.StrictRedis.set')
def test_identical(self, mock_redis_set, mock_redis_get):
    mock_redis_get.return_value = ???
    f2 = deepcopy(self.f)
    f3 = deepcopy(self.f)
    f2.pk = 2
    f3.pk = 3
    self.one_row(f2, f3)

但我不知道如何设置return_valueget(),以什么样的set()将在代码中设置,从而使测试将通过。

现在,此行未通过测试:

res = cPickle.loads(get_redis_client().get('temp-facility-data'))
TypeError: must be string, not MagicMock

有什么建议吗?

用户名

认为您可以使用副作用来设置和获取本地词典中的值

data = {}
def set(key, val):
    data[key] = val

def get(key):
    return data[key]

mock_redis_set.side_effect = set
mock_redis_get.side_effect = get

没有测试过,但我认为它应该做你想要的

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在PHPUnit测试中“模拟” Sentry客户端

来自分类Dev

如何在rspec中模拟Twitter流客户端调用?

来自分类Dev

如何模拟客户端中止请求?

来自分类Dev

如何模拟riak Java客户端?

来自分类Dev

如何模拟客户端中止

来自分类Dev

如何模拟客户端休息服务

来自分类Dev

如何在传输客户端或节点客户端中启用文档路由

来自分类Dev

如何从Redis获取客户端地址

来自分类Dev

如何在Python中使用DICT协议客户端?

来自分类Dev

如何在Python中使用dialogflow客户端

来自分类Dev

如何在javascript中检测客户端的向后导航?

来自分类Dev

如何在Meteor中访问客户端IP地址?

来自分类Dev

如何在MongoDB中获得连接的客户端

来自分类Dev

如何在Julia中编写WebSocket客户端?

来自分类Dev

如何在docker alpine中安装mongodb客户端?

来自分类Dev

如何在Ubuntu中安装Subversion客户端?

来自分类Dev

如何在MongoDB中获得连接的客户端

来自分类Dev

如何在Linux中安装SQL * PLUS客户端

来自分类Dev

如何在Twisted中管理连接和客户端?

来自分类Dev

如何在Laravel中设置OpenID Connect客户端?

来自分类Dev

如何在Roda中获取客户端的IP地址?

来自分类Dev

如何在客户端Javascript中隐藏API密钥

来自分类Dev

如何在Jersey客户端中更改CookieSpec?

来自分类Dev

如何在Web Worker中访问客户端URL?

来自分类Dev

如何在Docker中安装kerberos客户端?

来自分类Dev

如何在Docker容器中运行JavaScript客户端?

来自分类Dev

如何在Ubuntu中安装Subversion客户端?

来自分类Dev

如何在Meteor中访问客户端IP地址?

来自分类Dev

如何在Docker容器中运行OpenVPN客户端?

Related 相关文章

热门标签

归档