2011-12-28 37 views
5

我甚至不确定是否有一个实用程序允许这样做,但它似乎是这样一个共同的需要?使用实时数据快速生成模拟存储库对象? Moq

是否有一个程序/库/组件会生成模拟的.NET对象(存储库),这些对象会在某些数据库调用时产生一些模拟数据。

请允许我详细说明: 如果我测试存储库(不是单元测试,只是在控制台窗口中测试),并且当我将选择标准传递到我的存储库时,它会返回对象列表。我愿意/爱/能够捕获该对象列表并将其转换为可用作单元测试设置的静态设置C#代码。我的物体安静复杂,需要很长时间才能正确设置它们。

这可能吗?我的团队正在使用Moq & Ninject

回答

1

手动编写它们可能是一件痛苦的事,但您只需要一次就可以完成它。然后,对于每个连续的测试,您都可以修改输入。无论如何,我不知道在运行时保存或捕获对象。我找到了一个网页,讲述了自动锁定它可能会做你以后的事情。 http://code.google.com/p/moq-contrib/wiki/Automocking

干杯, 安德鲁

1

有几个很好的方法来处理这方面的需要。

首先,你可以重新检查你为什么要这样做。如果你需要完全配置一个复杂对象来运行你的单元测试,那可能是你试图测试太多。复杂的设置是一种测试气味,可能(或可能不)表明您应该进行设计更改。

有时候做出这种改变是不可行的,有时候测试气味并不能真正表明设计发生变化。在这些情况下,你最好的选择是序列化对象(当你说“将它转换为静态设置C#代码”时,可以重新声明为“将它序列化为C#指令来重新创建它”)。有很多相对简单的方法来序列化到XML,我推荐DataContractXmlSerialization,它们都很容易实现和使用。