0

我有一个派生自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 以使其可测试?

对此非常感谢的任何帮助

谢谢

4

1 回答 1

1

一般而言,告诉我们您尝试了哪些类型的事情,哪些已经奏效或没有奏效,以及如何做,是一种很好的做法。这可能会在未来为您提供更好(和更快)的答案。请参阅如何寻求更多指示。

不过,我可以帮上一点忙。

ValidationContext密封的,因此不能伪造。有关可以伪造和不能伪造的类型的更多信息,请参阅可以伪造的内容。

我不熟悉 ValidationContext。是否有可能您不需要伪造一个,您可以创建一个并为其提供可以用于测试的状态?

于 2014-06-24T11:08:01.327 回答