簡體   English   中英

Visual Studio 單元測試生成錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM