我正在使用 DataAnnotations 和 ASP.NET MVC3 进行项目。我们使用此解决方案来测试“日期注释”的验证:http ://gcbyjm.blogspot.com.br/2011/02/how-to-unit-test-dataannotations.html
我在测试“ViewModel”的属性“DateTime”时遇到问题。
public class AchievementVM
{
...
[Required(ErrorMessage = "The date field is required.")]
[DataType(DataType.DateTime, ErrorMessage = "Invalid date.")]
public DateTime Date { get; set; }
...
}
[TestMethod]
public void AchievementVMValidator_ShouldHaveErrorWhenDateIsInvalid()
{
// Arrange
var achievementVM = new AchievementVM() { Date = ???? };
// Act
var errors = ValidationBuddy.GetErrors(achievementVM) as List<ErrorInfo>;
// Assert
ErrorInfo error = errors.Find(delegate(ErrorInfo e) { return e.ErrorMessage == "The date field is required."; });
Assert.IsTrue(error != null);
}
我的问题是如何传递这个属性的值来模拟ModelBind ERROR。在这两种情况下,文本框都是空的和无效的数据。
非常感谢!