【发布时间】:2012-04-12 18:45:26
【问题描述】:
是否有任何适用于 Windows Phone 7 的模拟框架,或者我是否需要手动创建假冒?
我在谷歌上没有找到任何东西,虽然我发现 WP7 资源页面上列出了 Moq,但我无法让它工作。
【问题讨论】:
标签: windows-phone-7 tdd mocking
是否有任何适用于 Windows Phone 7 的模拟框架,或者我是否需要手动创建假冒?
我在谷歌上没有找到任何东西,虽然我发现 WP7 资源页面上列出了 Moq,但我无法让它工作。
【问题讨论】:
标签: windows-phone-7 tdd mocking
没有支持 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 框架应该可以正常工作。
【讨论】:
我不知道目前有任何可用的。
This article by David Gadd 显示了使用手动创建的假对象在手机上进行测试的示例,这可能是一个有用的资源。
【讨论】:
我刚收到TypeMock Isolator,它适用于 Windows Phone 7 (sortof)。
您需要创建一个默认的 Visual Studio 测试项目,您会收到一条错误消息,提示您的 Windows Phone 7 项目无法被引用,但由于某种原因,模拟和测试工作正常。
无论如何,我对它能够创建的模拟非常满意。
【讨论】:
任何支持 Silverlight 3 的模拟框架都应该适用于 Windows Phone 7。不过,您可能需要使用该框架的早期版本将其“简化”为 Silverlight 3。
【讨论】:
只是想注意一些我在 MSDN 上找到的信息:
http://msdn.microsoft.com/en-us/library/hh821022.aspx#sec2
模拟类是手动开发的,因为在 Windows Phone 平台上无法使用模拟框架。模拟框架需要能够发出 Microsoft 中间语言 (MSIL) 代码,这目前在 Windows Phone 平台上是不可能的
【讨论】: