我甚至不确定是否有允许这样做的实用程序,但这似乎是一种常见需求?
是否有一个程序/库/组件会生成模拟的.NET对象(存储库),这些对象会在某些数据库调用时产生一些模拟数据。
请允许我详细说明: 如果我正在测试存储库(不是单元测试,只是在控制台窗口中测试),当我将选择条件传递给我的存储库时,它会返回一个对象列表。我希望/喜欢/能够捕获对象列表并将其转换为静态设置C#代码,这些代码将用作单元测试的设置。我的物体非常复杂,需要很长时间才能正确设置它们。
这可能吗?我的团队正在使用Moq& Ninject
答案 0 :(得分:1)
手工编写它们可能会很痛苦,但您只需要一次就能完成它。然后,对于每个连续测试,您可以修改输入。无论如何,我不知道在运行时保存或捕获对象。我找到了一个网页,谈论自动化它可能会做你想做的事情。 http://code.google.com/p/moq-contrib/wiki/Automocking
干杯, 安德鲁
答案 1 :(得分:1)
有几种很好的方法可以满足这种需求。
首先,您可以重新检查为什么要这样做。如果你需要完全配置一个复杂的对象来运行你的单元测试,那么你可能正在尝试测试太多。复杂的设置是一种测试气味,可能(或可能不)表明您应该进行设计更改。
有时进行这种改变是不可行的,有时测试气味并不能真正表明设计的变化。在这些情况下,最好的选择是序列化对象(当您说“将其转换为静态设置C#代码”时,可以将其重新表述为“将其序列化为C#指令以重新创建它”)。有很多相对简单的方法可以序列化为xml,我推荐DataContract或XmlSerialization,它们都非常容易实现和使用。