久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何在 Python 中模擬 redis 客戶端?

How to mock a redis client in Python?(如何在 Python 中模擬 redis 客戶端?)
本文介紹了如何在 Python 中模擬 redis 客戶端?的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我剛剛發(fā)現(xiàn)一堆單元測試失敗了,因?yàn)殚_發(fā)人員沒有在測試中模擬出對 redis 客戶端的依賴.我正在努力解決這個(gè)問題,但我自己也遇到了困難.

I just found that a bunch of unit tests are failing, due a developer hasn't mocked out the dependency to a redis client within the test. I'm trying to give a hand in this matter but have difficulties myself.

該方法寫入一個(gè)redis客戶端:

The method writes to a redis client:

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

稍后在斷言中檢索結(jié)果:

Later in the assert the result is retrieved:

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)

我成功地修補(bǔ)了redis客戶端的get()和set().

I managed to patch the redis client's get() and set() successfully.

@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)

但我不知道如何將 get()return_value 設(shè)置為 set() 將在代碼中設(shè)置的值,以便測試通過.

but I don't know how to set the return_value of get() to what the set() would set in the code, so that the test would pass.

現(xiàn)在這條線沒有通過測試:

Right now this line fails the test:

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

有什么建議嗎?

推薦答案

認(rèn)為你可以使用副作用在本地字典中設(shè)置和獲取值

Think you can use side effect to set and get value in a local dict

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

未對此進(jìn)行測試,但我認(rèn)為它應(yīng)該可以滿足您的需求

not tested this but I think it should do what you want

這篇關(guān)于如何在 Python 中模擬 redis 客戶端?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Python 3 Float Decimal Points/Precision(Python 3 浮點(diǎn)小數(shù)點(diǎn)/精度)
Converting Float to Dollars and Cents(將浮點(diǎn)數(shù)轉(zhuǎn)換為美元和美分)
What are some possible calculations with numpy or scipy that can return a NaN?(numpy 或 scipy 有哪些可能的計(jì)算可以返回 NaN?)
Python float to ratio(Python浮動比率)
How to manage division of huge numbers in Python?(如何在 Python 中管理大量數(shù)字的除法?)
mean from pandas and numpy differ(pandas 和 numpy 的意思不同)
主站蜘蛛池模板: 欧美影院 | xx性欧美肥妇精品久久久久久 | 国产一级淫片免费视频 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 在线观看视频h | 91高清在线观看 | 亚洲精品成人在线 | 精品国产乱码久久久久久丨区2区 | 国产在线中文字幕 | 999久久久国产精品 欧美成人h版在线观看 | 色婷婷综合久久久中字幕精品久久 | 欧美精品乱码久久久久久按摩 | 天堂网avav| 国产福利久久 | 日韩欧美不卡 | 中文字幕精品一区二区三区精品 | 精品国产欧美日韩不卡在线观看 | 欧美bondage紧缚视频 | 天天操天天射天天 | 人人人人干 | 99在线免费视频 | 91福利在线观看 | 一区视频在线 | 伊人网在线看 | 国产偷录视频叫床高潮对白 | 一二三区在线 | 日韩免费视频一区二区 | 手机av网| 91精品国产欧美一区二区成人 | 99国产精品99久久久久久粉嫩 | 亚洲精品在线视频 | 91精品久久久久 | 日本亚洲一区 | 日韩视频免费在线 | av手机在线免费观看 | 一级黄色网页 | 91精品国产自产精品男人的天堂 | www日本在线观看 | 久久久精品视 | av免费网站在线观看 | 狠狠夜夜 |