Windows Phone 7.1,Silverlight NUnit项目-template和Moq:TypeLoadException

时间:2011-09-06 06:52:26

标签: nunit moq windows-phone-7 windows-phone-7.1

是时候用MVVM Light ViewModels进行一些单元测试了。

设定:

步骤:

  1. 创建一个新的MvvmLight(WP7) - 项目
  2. 将项目转换为WP7.1
  3. 创建一个新的Silverlight NUnit -project
  4. 将WP7项目引用到Silverlight NUnit -project
  5. 向MainViewModel添加一个虚方法(f.ex. public string DoSomething())
  6. 添加一个实例化MainViewModel的测试,调用dummy方法并断言。
  7. 运行测试 - >一切都应该按预期工作
  8. 添加对Moq的引用
  9. 使用一些Moq添加第二个测试方法。我只是从Moq的网站上复制粘贴了这个演示代码:

    var mock = new Mock();

    //哇!没有记录/重播怪异?! :) mock.Setup(framework => framework.DownloadExists(“2.0.0.0”))     .Returns(真)     .AtMostOnce();

    //手动模拟。作为合作者的对象并运用它, //喜欢在上面调用方法...... ILoveThisFramework lovable = mock.Object; bool download = lovable.DownloadExists(“2.0.0.0”);

    //验证确实使用期望值调用了给定方法 mock.Verify(framework => framework.DownloadExists(“2.0.0.0”));

  10. 运行测试。
  11. 这是我在第9步通过NUnit跑步者获得的:

    SilverlightNUnitProject2.SilverlightTests.TestSomething:
    System.TypeLoadException : Could not load type 'System.Action' from assembly 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
    

    问题:

    这里发生了什么?我的设置的哪一部分失败了,为什么?

    更新!

    我发现了一篇与此问题相关的博文here。这激发了我下载并试用该文章中使用的exactly same version of Moq (3.1.416.3)。而且你知道吗?它有效。

    我不打算把它作为答案,因为我仍然不知道这里发生了什么。我认为,原始问题仍然存在。

0 个答案:

没有答案