【问题标题】:Windows Phone 7 mocking framework?Windows Phone 7 模拟框架?
【发布时间】:2012-04-12 18:45:26
【问题描述】:

是否有任何适用于 Windows Phone 7 的模拟框架,或者我是否需要手动创建假冒?

我在谷歌上没有找到任何东西,虽然我发现 WP7 资源页面上列出了 Moq,但我无法让它工作。

【问题讨论】:

    标签: windows-phone-7 tdd mocking


    【解决方案1】:

    没有支持 WP7 的 Mocking 框架,我怀疑在 WP7 支持 Reflection.Emit 之前永远不会有。

    .net 框架上有 many options 用于创建模拟框架(Profiler API、CodeDem、Refleciton.Emit 等)。大多数这些技术不适用于 Silverlight 本身,因为它缺少很多 BCL/CLR。所有现有的 Silverlight 模拟框架都使用 Reflection.Emit。 WP7 不支持 Reflection.Emit,因此没有 Silverlight 模拟框架可以在 WP7 上运行。

    由于这个原因,我亲自在 Silverlight 运行时测试 WP7 程序集。这远非最佳(很糟糕),但它是在这种情况下可以做到的最好的。

    理论上可以构建一个使用 Post-Build MSIL 编织的 Mocking 框架,该框架应该适用于 WP7,但尚未完成。

    如果您希望 WP7 支持 Reflection.Emit,请考虑对此用户语音问题进行投票:WP7 should support Reflection.Emit for Mocking frameworks

    2011 年 2 月 12 日编辑: Mango 支持 Refleciton.Emit。万岁!基于 Reflection.Emit 的 Mocking 框架应该可以正常工作。

    【讨论】:

    • 关于您的 EDIT 2/12/2011 - System.Reflection.Emit 命名空间存在,但 WP7 Silverlight 中包含的具体类已大大减少,就我可以看到。你知道是否有足够的东西让嘲笑继续下去吗?
    • 我刚刚发布了一个用于 Windows Phone 7 的模拟框架的早期版本:moqalate.codeplex.comdontcodetired.com/blog/post/…
    【解决方案2】:

    我不知道目前有任何可用的。

    This article by David Gadd 显示了使用手动创建的假对象在手机上进行测试的示例,这可能是一个有用的资源。

    【讨论】:

      【解决方案3】:

      我刚收到TypeMock Isolator,它适用于 Windows Phone 7 (sortof)。

      您需要创建一个默认的 Visual Studio 测试项目,您会收到一条错误消息,提示您的 Windows Phone 7 项目无法被引用,但由于某种原因,模拟和测试工作正常。

      无论如何,我对它能够创建的模拟非常满意。

      【讨论】:

        【解决方案4】:

        任何支持 Silverlight 3 的模拟框架都应该适用于 Windows Phone 7。不过,您可能需要使用该框架的早期版本将其“简化”为 Silverlight 3。

        【讨论】:

          【解决方案5】:

          只是想注意一些我在 MSDN 上找到的信息:

          http://msdn.microsoft.com/en-us/library/hh821022.aspx#sec2

          模拟类是手动开发的,因为在 Windows Phone 平台上无法使用模拟框架。模拟框架需要能够发出 Microsoft 中间语言 (MSIL) 代码,这目前在 Windows Phone 平台上是不可能的

          【讨论】:

            猜你喜欢
            • 2011-06-26
            • 1970-01-01
            • 2011-11-12
            • 2011-07-02
            • 1970-01-01
            • 2011-09-18
            • 1970-01-01
            • 2011-02-22
            • 1970-01-01
            相关资源
            最近更新 更多