0

我为模型添加了数据注释,找到代码,

public class DownloadInfo
{
    [Required]
    public string Name { get; set; }

    [Required]
    [Email]
    public string Email { get; set; }
} 

我想通过提供如下所示的无效电子邮件 ID 来为此数据注释编写单元测试。

    [Test]
    public void InvalidTestPost()
    {
        TestControllerBuilder builder = new TestControllerBuilder();
        DownloadController downloadController = builder.CreateController<DownloadController>();

        DownloadInfo downloadInfo = new DownloadInfo();
        downloadInfo.Email= "some invaild email";

        Assert.IsTrue(!downloadController.ModelState.IsValid);
    }

如何对数据注释进行单元测试?

问候,卡蒂克。

4

1 回答 1

0

一个明显的老问题,但如果有人还在看,这里有一个答案。

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.ComponentModel.DataAnnotations;
using DataAnnotationsTesting;

namespace UnitTest
{
    [TestClass]
    public class OurDataValidationClassShould
    {
        [TestMethod]
        public void ReturnAnErrorIfAnEmailIsInvalid()
        {
            DownloadInfo downloadInfo = new DownloadInfo()
            {
                Email = "Invalid Email",
                Name = "Name"
            };

            Validator.ValidateObject(downloadInfo, new ValidationContext(downloadInfo, null, null) { MemberName = "Email" });
        }
    }
}
于 2013-11-11T13:54:42.933 回答