18

我正在开发一个使用 Azure 表存储的系统。在其他系统(例如,SQL、基于文件的等)中,我可以编写一个假的来测试我的数据持久性逻辑。但是,我看不到为 Azure 表服务创建假的简单方法。

我可以创建一个行为相同的新 IIS 项目,但这不是编写单元测试的好方法,它更像是一个集成测试。

有关如何对使用 Azure 表存储客户端的数据访问代码进行单元测试的任何想法?

4

4 回答 4

1

我更多地考虑将其用于集成测试,但我想它也可以用于单元测试。认识Azure 存储模拟器。这听起来像是一个用于测试 Azure Blob、队列和表服务的非常棒的工具。如果我记得这样做,我正在玩它并尝试发布我的发现。

于 2015-12-09T18:53:25.833 回答
0

我使用 ICloudTableStorage 的内存实现,您可以将其传递到例如 ReliableCloudTableRepository。

你可以在这里找到代码:https ://gist.github.com/4078750

于 2012-11-15T14:04:22.927 回答
0

我知道这里发布了几种解决方案,但这是我想出的一个:

http://azurator.blogspot.com/2013/07/unit-testing-azure-table-storage-queries.html

这只是当您使用 查询对象时的一种解决方案CloudTableQuery<T>,但它对我帮助很大。如果您正在尝试获得更完整的实现,您还可以创建一个 shim 来DataServiceContext.SaveChanges()获取更新部分。

于 2013-07-02T01:10:48.817 回答
0

这是我目前正在考虑的事情,但我还没有尝试过。

TableServiceContext 继承自 DataServiceContext,所以我想如果您可以将 TableServiceContext 作为 DataServiceContext 注入,您可以使用数据服务对表格存储进行建模。

更进一步,如果您使用实体框架“代码优先”来创建实体模型 - 您可以只使用您已经创建的表实体作为数据服务的支持实体,一切都应该顺利进行。

至少理论上是这样的。我从来没有尝试过。

http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storageclient.tableservicecontext_members.aspx

于 2011-01-10T03:55:14.333 回答