【问题标题】:Generate mocked repository objects quickly using live data? Moq使用实时数据快速生成模拟存储库对象?起订量
【发布时间】:2011-12-28 04:37:23
【问题描述】:

我什至不确定是否有允许这样做的实用程序,但这似乎是一种常见的需求?

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

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

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

【问题讨论】:

    标签: unit-testing mocking moq mstest


    【解决方案1】:

    手写它们可能会很痛苦,但您只需要正确一次。然后对于每个连续的测试,您可以修改输入。我不知道在运行时保存或捕获你的对象。我发现了一个关于自动模拟它的网页可能会做你想要的。 http://code.google.com/p/moq-contrib/wiki/Automocking

    干杯, 安德鲁

    【讨论】:

      【解决方案2】:

      有几种很好的方法可以满足这种需求。

      首先,您可以重新审视您为什么要这样做。如果您需要完全配置一个复杂的对象才能运行您的单元测试,则可能是您尝试测试太多。复杂的设置是一种测试气味,可能(也可能不会)表明您应该进行设计更改。

      有时进行这种更改是不可行的,有时这种测试气味并不能真正表明设计更改。在这些情况下,最好的办法是序列化对象(当您说“将其转换为静态设置 C# 代码”时,可以重述为“将其序列化为 C# 指令以重新创建它”)。序列化成xml有很多比较简单的方法,我推荐DataContract或者XmlSerialization,它们都非常容易实现和使用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-21
        • 2021-09-15
        • 1970-01-01
        相关资源
        最近更新 更多