我想對以下函式進行單元測驗,該函式將RunInfo物件串列作為引數。
def get_mses(runs):
mse = []
for r in runs:
metrics = mlflow.get_run(r.run_id).data.metrics
mse.append(metrics['cv_mse'])
return mse
雖然主要邏輯是metrics,但它確實需要迭代runs并獲取屬性run_id以檢索有關每次運行的資訊。但是我認為我不需要模擬實際的RunInfo類,而是一些帶有屬性的假類run_id。我如何模擬它并通過使用簡單的 (1, 2, 3) 指定 run_ids 來創建物件串列side_effects?
我找到了這篇文章,但這并不是我想要做的。
uj5u.com熱心網友回復:
您不必side_effects為此目的使用。unittest.mock有一個NonCallableMock可以保存任意屬性的類。
from unittest import mock
runs = [mock.NonCallableMock(run_id=i) for i in range(1,4)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/427121.html
