[英]Visual Studio Unit Test Generation Error
我嘗試讓 Visual Studio 2010 為以下 class 創建單元測試,但是引發了以下錯誤。 我研究並發現這是由於在使用之前未設置引用引起的,但是,我看不到代碼中存在此問題的位置。
[Serializable]
class PrintUser : IEquatable<PrintUser>
{
public string Username { get; private set; }
public int PageLimit { get; set; }
public bool LimitEnforced { get; set; }
public PrintUser(string userName)
{
this.Username = userName;
}
bool IEquatable<PrintUser>.Equals(PrintUser other)
{
return this.Username == other.Username;
}
}
在嘗試生成測試時,出現以下錯誤:Object 引用未設置為 object 的實例。
更新:我修復了不檢查 null 的問題,但這並沒有解決問題。 嘗試生成測試代碼時發生錯誤。 還有另一個奇怪的錯誤剛剛開始在另一個 class 上發生。 我編寫了 class,然后右鍵單擊 equals 方法並選擇為該方法創建一個單元測試。 然后,發生錯誤並且沒有生成任何測試代碼。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamTest\Microsoft.TeamTest.targets(14,5):錯誤:方法實現中的主體簽名和聲明不匹配。 類型:“PrintMonitorComponents.ADUserGroup_Accessor”。 程序集:'PrintMonitorComponents_Accessor,版本 = 0.0.0.0,文化 = 中性,PublicKeyToken = null'。
更新: PrintUser class(如上所示)也拋出了下面列出的類似錯誤。 我更新了我的代碼以在 equals 方法中檢查 null。
方法實現中的主體簽名和聲明不匹配。 類型:'PrintMonitorComponents.PrintUser_Accessor'。 程序集:'PrintMonitorComponents_Accessor,版本 = 0.0.0.0,文化 = 中性,PublicKeyToken = null'。 PrintMonitorComponentsTest
我不知道為什么,但是在我將接口實現從顯式更改為隱式后,錯誤就停止了。 此外,在此更改之后,Visual Studio 2010 能夠正常生成單元測試/代碼。
這是我再次收到的錯誤:
方法實現中的主體簽名和聲明不匹配。 類型:'PrintMonitorComponents.PrintUser_Accessor'。 程序集:'PrintMonitorComponents_Accessor,版本 = 0.0.0.0,文化 = 中性,PublicKeyToken = null'。 PrintMonitorComponentsTest
這是新代碼:
[Serializable]
class PrintUser : IEquatable<PrintUser>
{
public string Username { get; private set; }
public int PageLimit { get; set; }
public bool LimitEnforced { get; set; }
public PrintUser(string userName)
{
this.Username = userName;
}
public bool Equals(PrintUser other)
{
if (other == null)
{
return false;
}
else
{
return this.Username == other.Username;
}
}
}
您需要在Equals
方法中檢查other
不是null
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.