我正在为c#尝试一些模拟框架。
我创建了一个Windows Phone 8.1项目,然后添加了一个8.1单元测试项目
安装了nuget包的已安装的Rhinos。试图进行简单的存根测试:
public class MyTest
{
public int value()
{
return 23;
}
}
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
MyTest item;
item = MockRepository.GenerateStub<MyTest>();
item.Stub(x => x.value()).Return(240);
Assert.Equals(239, item.value());
}
}
但是当我运行测试时,我收到以下错误:
Result Message: Test method UnitTestApp1.UnitTest1.TestMethod1 threw exception:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.
Result StackTrace:
at Rhino.Mocks.MockRepository.GenerateStub[T](Object[] argumentsForConstructor)
at UnitTestApp1.UnitTest1.TestMethod1()
问题出在哪里?
注意:我是Visual Studio和Windows Phone开发的先驱,所以请解释一下你的答案
答案 0 :(得分:2)
问题是因为您的Windows Phone 8.1测试项目无法引用Windows Phone 8.1 / Windows Runtime不支持的任何内容;不幸的是,这包括你的模拟框架。
我解决这个问题的方法是将所有单元可测试代码移动到一个可移植的类库中,然后我可以从Windows Phone项目中引用它。然后,创建一个正常的单元测试项目,在引用您的可移植类库和您选择的模拟框架时没有问题。