我正在使用Azure表存储的系统。在其他系统(例如,SQL,基于文件等)中,我可以写一个假的,允许我测试我的数据持久性逻辑。但是,我看不到为Azure表服务创建虚假的简单方法。
我可以创建一个行为方式相同的新IIS项目,但这不是编写单元测试的好方法,它更像是一个集成测试。
有关如何对使用Azure表存储客户端的数据访问代码进行单元测试的想法吗?
答案 0 :(得分:1)
我正在考虑更多用于集成测试,但我认为它也适用于单元测试。见Azure Storage Emulator。这听起来像是一个非常棒的测试Azure Blob,队列和表服务的工具。如果我记得这样做的话,我就可以试着发布我的发现。
答案 1 :(得分:0)
这是我目前正在考虑的事情,但我还没有尝试过。
TableServiceContext来自DataServiceContext,因此我想如果您可以将TableServiceContext注入DataServiceContext,则可以使用数据服务对Table Store建模。
更进一步,如果您使用实体框架“Code First”来创建您的实体模型 - 您可以使用您已经创建的表实体作为数据服务的支持实体,一切都应该顺利进行。
至少这是理论。我从未尝试过。
答案 2 :(得分:0)
我使用ICloudTableStorage的内存实现,你可以将其传递给ReliableCloudTableRepository。
您可以在此处找到代码:https://gist.github.com/4078750
答案 3 :(得分:0)
我知道这里有几个解决方案,但这是我想出的那个:
http://azurator.blogspot.com/2013/07/unit-testing-azure-table-storage-queries.html
这只是使用CloudTableQuery<T>
查询对象时的解决方案,但它对我帮助很大。如果您正在尝试获得更全面的实现,您还可以为DataServiceContext.SaveChanges()
创建一个垫片,它可能会为您提供更新部分。