2010-05-06 59 views
1

我正在嘗試爲現有的緊湊框架類庫設置一些單元測試。不過,我已經愛上的第一道關卡,它出現的測試框架無法加載所涉及的類型如何對通用類進行單元測試

試驗方法MyLibrary.Tests(即使它們在類庫被測試倆都) .MyGenericClassTest.MyMethodTest拋出異常:system.missingMethodException而:未能從程序集加載類型「MyLibrary.MyType '在MyLibrary,版本= 1.0.3778.36113文化=中性公鑰=空' ..

我的代碼鬆散地:

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)。

+0

MyType的定義是什麼? – dpurrington 2010-05-06 21:06:28

回答

0

顯然,當單元測試一個緊湊框架應用程序時,the .Net framework is not automatically deployed

因此,您必須調試(它將自動部署框架)設備模擬器上的應用程序,該應用程序將用於單元測試。通過雙擊'SmartDeviceTestRun1.testrunConfig'解決方案項目 - 要使用的圖像位於'主機'選項卡上,您可以爲設備模擬器映像用於單元測試。

1

請嘗試以下操作 - 創建一個控制檯應用程序,並嘗試在單元測試中執行任何操作。如果這也不起作用,那麼還有其他一些問題。如果有效,那麼測試存在問題。

+0

編譯一切(我不是在這裏單元測試任何UI)的完整框架作品。 – 2010-05-09 08:17:07

相關問題