我有一个派生自 ValidationAttribute (MVC中的DataAnnotation)的课程
以下是此类的重写方法:
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));
}
我想为这个方法编写单元测试。如何使用FakeItEasy伪造ValidationContext以使其可测试?
对此非常感激的任何帮助
由于
答案 0 :(得分:1)
一般来说,告诉我们您尝试了哪些类型的内容,以及哪些内容有效或无效,以及如何操作,这是一种很好的做法。这可能会让你在将来获得更好(和更快)的答案。有关详细信息,请参阅How to ask。
但是,我可以帮助一点。
ValidationContext 密封,因此无法伪造。有关哪些类型可以伪造和不可伪造的详细信息,请参阅What can be faked。
我不熟悉ValidationContext。您是否可能不需要伪造一个,您可以创建一个并为其提供将为您的测试提供服务的状态?