模拟WinRT的框架?

Joe*_*ite 21 mocking windows-runtime

感觉就像我必须遗漏一些东西,但是当我为WinRT代码编写单元测试时,我无法找到任何可以使用的模拟对象框架.那里有任何支持WinRT的模拟框架吗?

我知道MoqRT,但据我所知,它在构建时执行codegen(虽然通过一个脆弱的声音集成,这不是实际构建过程的一部分),但它感觉更像是一个hack而不是一个实现.

DynamicMethod(轻量级代码生成背后的类)显然在WinRT中不可用.但似乎支持表达式树,包括它们的编译方法; 所以似乎模拟对象框架应该是可行的.

那里有任何WinRT模拟框架吗?

Tob*_*ans 5

我一直在WinRT中使用Telerik JustMock.当测试失败时,您没有收到有用的错误消息,但除此之外,您就离开了.这是我得到的完整付费版本,而不是免费版本,我不知道是否有效.

此外,您可能需要考虑是否确实需要在WinRT程序集中使用代码 - 检查可移植类库,并从WinRT应用程序中调用它们.我可能被现实证明是错的,但我认为你可以在PCL中的代码上使用模拟框架


Jon*_*Rea 0

WinRT 中不可能进行模拟:

然而,微软看起来确实会在不久的将来支持他们自动生成的“假程序集”:

  • Microsoft 的假程序集的问题在于您需要 VS Ultimate 才能获取它们。 (4认同)
  • 您的第一个链接说 WinRT 中缺少 System.Reflection.Emit (这似乎是真的),但它完全忽略了表达式树 - 正如我在问题中所说,WinRT 显然支持表达式树。所以我不相信那篇文章;看起来他只是在寻找他习惯的 API,但却错过了另一个可以完成相同任务的 API。 (2认同)