我正在使用DataAnnotations和ASP.NET MVC3構建項目。我們使用此解決方案來測試「Date Annotions」的驗證:http://gcbyjm.blogspot.com.br/2011/02/how-to-unit-test-dataannotations.html使用ASP.NET MVC 3 +數據註解和屬性進行單元測試DateTime
我有問題來測試「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錯誤。在這兩種情況下,文本框都是空的和無效的數據。
非常感謝!