0
我很難用包裝模擬我的頭來使用Mock在Python中進行非平凡的單元測試。我不想爲我的測試套件使用生產數據庫,並且想要創建僅測試數據庫。Python模擬單元測試聲明Mysql結果集
比方說,我想與包含此數據這三個表創建一個模擬數據庫:
FRUIT
id Name
1 Apple
2 Pear
3 Orange
COLOR
id Name
1 Red
2 Yellow
3 Orange
FRUIT_COLOR
id fruit_id color_id
1 1 1
2 1 2
3 2 2
4 3 3
現在讓我們假設我有以下功能:
def assess_fruit(self):
query = """
SELECT
f.name AS FRUIT,
c.name AS COLOR
FROM fruit_color AS fc
JOIN fruit AS f ON f.id = fc.fruit_id
JOIN color AS c ON c.id = fc.color_id
WHERE color.name = 'Red';
"""
cursor.execute(self._query)
results = cursor.fetchall()
return results
如何獲得有關使用模擬這個數據庫並測試結果應該是這樣的元組列表?
[(Apple, Red), (Apple, Yellow)]
在此先感謝您。
以這種方式寫入的數據是否保存到磁盤?有沒有辦法使用Mock庫(或任何其他方法)將數據庫完全保存在setUp和tearDown函數之間的內存中? – OnlyDean
是的。這將寫入您的模擬數據庫,聲稱在您的問題中創建。 –
太棒了,謝謝,很高興知道。我很難知道如何提出正確的問題。我目前沒有硬盤上的測試數據庫,我需要創建_something_。如果有辦法在記憶中完成這一切,那將是最佳的。如果沒有,你發佈的答案是一個很好的起點。謝謝。 – OnlyDean