我正在尝试为现有的紧凑框架类库设置一些单元测试。但是,我遇到了第一个障碍,看起来测试框架无法加载所涉及的类型(即使它们都在被测试的类库中)
测试方法MyLibrary.Tests.MyGenericClassTest.MyMethodTest抛出异常:System.MissingMethodException:无法从程序集“MyLibrary,Version = 1.0.3778.36113,Culture = neutral,PublicKeyToken = null”中加载“MyLibrary.MyType”类型。 / p>
我的代码很松散:
public class MyGenericClass<T> : List<T> where T : MyType, new()
{
public bool MyMethod(T foo)
{
throw new NotImplementedException();
}
}
使用测试方法:
public void MyMethodTestHelper<T>()
where T : MyType, new()
{
MyGenericClass<T> target = new MyGenericClass<T>();
foo = new T();
expected = true;
actual = target.MyMethod(foo);
Assert.AreEqual(expected, actual);
}
[TestMethod()]
public void MyMethodTest()
{
MyMethodTestHelper<MyType>();
}
我有点难过,因为我甚至无法让它在调试器中破解以获得内部异常,所以我还要检查什么?
修改
这似乎是Compact Framework特有的东西 - 重新编译类库和完整框架的单元测试,给出了预期的输出(即调试器在我要抛出NotImplementedException
时停止)。 / p>
答案 0 :(得分:1)
尝试以下方法 - 创建一个控制台应用程序,并尝试在单元测试中执行任何操作。如果这也不起作用那么还有一些问题。如果可行则测试存在问题。
答案 1 :(得分:0)
显然,在对紧凑框架应用程序进行单元测试时,the .Net framework is not automatically deployed。
因此,您必须在设备模拟器上调试(将自动部署框架)您打算用于单元测试的应用程序。您可以通过双击“SmartDeviceTestRun1.testrunConfig”解决方案项来解决设备模拟器图像用于单元测试的问题 - 要使用的图像位于“主机”选项卡上