我需要單元測試一個方法,該方法接收MethodInfo某些任意用戶代碼方法(通過反射動態加載)的對象。單元測試接受MethodInfo對象的方法
public string SomeMethod(MethodInfo methodInfo);
我想鍛鍊使用不同的MethodInfo對象此方法。
最簡單的方法是使用<type>.GetMethod("name")
檢索MethodInfo對象,然後使用它調用測試方法並針對結果進行斷言。
我想涵蓋儘可能多的「不同」的方法信息(或更具體地說,儘可能多的不同方法傳入)。
我正考慮2層的方法,不知道這是應該怎麼做:
與我需要它的所有方法創建一個新的測試類。使用這種類型的GetMethods()並迭代它們以將它們饋送到我測試的方法中。
爲每個方法創建一個單獨的單元測試。
第一種選擇是容易擴展(添加到測試類的新方法),但包含多個斷言(斷言針對它具有每個MethodInfo的實例)。
我們如何輕鬆解決此問題併爲此特定場景創建穩健的測試?
我想你想過度測試,你只需要測試所有的情況來覆蓋你的整個代碼(包括你的方法中調用的函數生成的異常)。除此之外,對所有不同方法類型的Dummy Class的方法進行迭代,你想測試似乎是一個好方法。 – 2012-08-02 22:27:35
你準確地測試了什麼? MethodInfo是從反射中獲得的。測試的期望是什麼?它堅持什麼? – Ankush 2012-08-02 22:28:19
我們的應用程序動態獲取用戶的方法,將其參數序列化爲xml並顯示它。我想確保無論在我們的應用程序中拋出哪種方法,它都會成功處理並在xml中顯示其參數 – 2012-08-02 22:33:31