0
我在我的項目中有一個申請表,我想寫單元測試。 我的代碼背後有必要的字段進行服務器端驗證,以確保該字段不是空白。我需要幫助才能知道我是否寫過這篇文章,因爲這只是我編寫單元測試的第二天。請漂亮的我只有13單元測試在c#中的必填字段
[Required(ErrorMessage = "Please provide a title")]
public string Title
{
get; set;
}
在我的單元測試我做
public void TitleIsNotBlank()
{
Assert.IsNotNullOrEmpty(_vm.Title);
}
這會檢查字段不爲空
呢?
它的確會。雖然記住它不介意'[Required(ErrorMessage =「請提供標題」)]屬性,單元測試只是直接測試字段本身。我也不認爲有一個保證,即一個空字符串會在該屬性和'IsNotNullOrEmpty'斷言之間表現出相同的行爲。 (儘管它巧合的可能有相同的行爲。)因此,它可能是值得明確地測試該邊緣案例。 – David
我只理解了一半。你說它只會測試該字段不是空的或空的,但它不會測試返回的錯誤消息是那個錯誤消息。如果是這樣,我明白了。謝謝 – user2903379
這是一個正確的理解,是的。您不應該*需要*測試屬性的行爲,因爲這是一個框架組件,並且通常由供應商進行測試。取決於你可能不相信框架。在100%的覆蓋率單元測試是一個值得追求的目標,但在任何複雜的系統總是有(1)什麼是「100%」的意思,(2)在測試一些部件收益遞減的爭論。 (這意味着測試某些代碼的價值並不總是超過開發測試的成本,有時候。) – David