我想爲下面的類寫單元測試。
如果名稱不是「MyEntity」,那麼mgr應該是空白的。
負單元測試
使用管理器專用訪問器我想將名稱更改爲「Test」,以便mgr應該爲空。 然後將驗證mgr值。 要做到這一點,我想明確地調用靜態構造函數 但是當我打電話使用顯式調用靜態構造函數
Manager_Accessor.name = "Test"
typeof(Manager).TypeInitializer.Invoke(null, null);
的名字總是被設置爲「myEntity所」如何設置名稱爲「測試」並調用靜態構造函數靜態構造函數。
public class Manager
{
private static string name= "MyEntity";
private static object mgr;
static Manager()
{
try
{
mgr = CreateMgr(name);
}
catch (Exception ex)
{
mgr=null;
}
}
}
把它製作「經理」靜態意味着*所有*「經理」實例共享相同的* *「的代碼mgr'值,這也是永遠不會被改變的(因爲它是隻讀的)。那真的是你想要的嗎? – 2012-07-17 10:46:59
所以你需要改變一個私人的硬編碼靜態值,負責設置一個私有靜態只讀值用於測試目的?這就是爲什麼大多數可測試性的設計選擇都不喜歡靜態。 – 2012-07-17 10:56:13