我正在使用使用Azure表存儲的系統。在其他系統(例如,SQL,基於文件等)中,我可以編寫一個僞造的代碼,允許我測試數據持久性邏輯。但是,我無法看到爲Azure Table Service創建虛假的簡單方法。如何在.NET中爲單元測試僞造Azure表存儲?
我可以創建一個新的IIS項目,其行爲方式相同,但這不是編寫單元測試的好方法,它更像是一個集成測試。
有關如何對使用Azure表存儲客戶端的數據訪問代碼進行單元測試的任何想法?
感謝, 埃裏克
我正在使用使用Azure表存儲的系統。在其他系統(例如,SQL,基於文件等)中,我可以編寫一個僞造的代碼,允許我測試數據持久性邏輯。但是,我無法看到爲Azure Table Service創建虛假的簡單方法。如何在.NET中爲單元測試僞造Azure表存儲?
我可以創建一個新的IIS項目,其行爲方式相同,但這不是編寫單元測試的好方法,它更像是一個集成測試。
有關如何對使用Azure表存儲客戶端的數據訪問代碼進行單元測試的任何想法?
感謝, 埃裏克
這是我目前正在考慮自己的東西,但我還沒有嘗試過呢。我想如果你可以注入TableServiceContext作爲DataServiceContext,你可以使用數據服務爲Table Store建模。
更進一步,如果您使用實體框架「代碼優先」創建您的實體模型 - 您可以使用已經創建的表實體作爲數據服務的支持實體,並且一切都應該順利進行。
至少這是理論。我從來沒有嘗試過。
我使用一個內存實現ICloudTableStorage的,你可以進入如ReliableCloudTableRepository。
您可以在這裏找到代碼:https://gist.github.com/4078750
這個鏈接到一個沒有代碼的文件。我不知道它曾經包含什麼,但在這一點上它沒有什麼。 – 2015-12-08 21:45:53
我知道有張貼在這裏的幾個解決方案,但這裏是我想出了一個:
http://azurator.blogspot.com/2013/07/unit-testing-azure-table-storage-queries.html
這僅僅是在一個解決方案你使用CloudTableQuery<T>
查詢對象,但它對我有很大的幫助。如果您試圖獲得更全面的實施,您還可以爲DataServiceContext.SaveChanges()
創建一個墊片,以便爲您提供更新部分。
我正在考慮這更多的集成測試,但我想它也可以用於單元測試。遇見Azure Storage Emulator。這聽起來像是一個非常棒的測試Azure Blob,隊列和表服務的工具。如果我能記得這一點,我會玩弄它並嘗試發佈我的發現。
感謝您的回覆。我確信我完全遵循 - 是否建議使用WCF數據服務(本地)作爲Azure表測試的目標?如果是這樣,我喜歡這個想法,但我擔心兩者之間的奇怪差異。讓我知道你是否嘗試過,我也會這樣做。謝謝! – 2011-01-19 04:20:20