c#中单元测试的必填字段

时间:2017-07-15 21:40:01

标签: c# unit-testing

我的项目中有一个申请表,我想编写单元测试。 我的代码背后有必要的服务器端验证字段,以确保该字段不为空。我需要帮助才能知道我是否写得正确,因为这只是我编写单元测试的第二天。请你好,我只有13岁。

[Required(ErrorMessage = "Please provide a title")]        
public string Title
{
    get; set;
}

然后在我的单元测试中我做了

public void TitleIsNotBlank()
{
    Assert.IsNotNullOrEmpty(_vm.Title);
}

这会检查该字段是否为空白?

1 个答案:

答案 0 :(得分:0)

了解[Required]属性仅修饰属性非常重要,但除非有人调用其功能,否则它不会自动验证它。

通过修饰属性,您告诉任何其他进程可能会检查它应该是否需要以及错误消息应该读取的内容。例如,MVC框架的验证会为您激活此属性中的验证。确认实际发生的时间。

在我看来,理想情况下应该在业务对象级别进行测试(当您实际将模型的值分配给对象并尝试对其执行某些操作时,例如保存它)。

假设属性的验证码已经过测试,因此您不需要。但是,由于您的目标是增加覆盖率,您可以做的是测试以确保该字段被标记为"根据要求检查并确保其装饰如下:

var type = typeof(YourModelClass);
var property = type.GetProperty("Title");
var attributes = (Required[])property.GetCustomAttributes(typeof(Required), false);
Assert.IsTrue(attributes.Length > 0);