0

我這是從ValidationAttribute(DataAnnotation的MVC)如何使用FakeItEasy僞造ValidationContext?

得出以下一類是這個類的重載方法:

protected override ValidationResult IsValid(object value, ValidationContext validationContext) 
    { 
     if (value == null) 
      return ValidationResult.Success; 

     var tagWithoutClosingRegex = new Regex(@"<[^>]+>"); 

     var hasTags = tagWithoutClosingRegex.IsMatch(value.ToString()); 

     if (!hasTags) 
      return ValidationResult.Success; 

     return new ValidationResult(String.Format("{0} cannot contain html tags", validationContext.DisplayName)); 
    } 

我想寫這種方法的單元測試。我怎樣才能僞造ValidationContext使用FakeItEasy做出這個測試?

任何幫助,在此非常感謝

感謝

回答

1

一般情況下,這是很好的做法,告訴我們你試過什麼樣的東西,什麼有或沒有工作,以及如何。這可能會讓你在將來更好(更快)的答案。有關更多指針,請參閱How to ask

但是,我可以幫助一點。

ValidationContext密封所以它不能僞造。請參閱What can be faked瞭解有關哪些類型可以和不可僞造的更多信息。

我不熟悉ValidationContext。是否有可能你不需要僞造一個,你可以創建一個,併爲它提供可用於測試的狀態?

+0

+1在給出的例子中,我看不到有任何令人信服的理由使用假的ValidationContext而不是真實的。 –

相關問題