验证一个简单的.net集合在应该通过的时候失败了
本文关键字:失败 候失败 集合 一个 简单 net 验证 | 更新日期: 2023-09-27 18:12:29
我正在尝试创建一个FluentValidation规则,测试我的IList<string>
必须包含1个或多个项目。
- 不能为空
- 不能为空
.NotEmpty()
会检查这3个检查(上面)?谁能解释一下我(关于F.V.)做了哪个假设?我有错吗?
Show me da codez
public class AgentValidator : AbstractValidator<Agent>
{
public AgentValidator()
{
RuleFor(agent => agent.Name).NotEmpty()
.WithMessage("A name is required. eg. Jane Smith.");
RuleFor(agent => agent.AgencyIds).NotEmpty()
.WithMessage("At least one AgencyId is requires where this Agent works at.");
}
}
和测试
[Fact]
public void GivenNoAgencyIds_Validate_ShouldHaveAnError()
{
// Arrange.
var agencyIds = new string[]{}; // No Agency Id's.
// Act & Assert.
_agentValidator.ShouldNotHaveValidationErrorFor(agent => agent.AgencyIds, agencyIds);
}
最后是错误信息
FluentValidation.TestHelper。ValidationTestExceptionExpected没有属性代理id的验证错误FluentValidation.TestHelper.ValidatorTester"2。ValidateNoError (T instanceToValidate)在c: ' '项目FluentValidation ' src ' FluentValidation ' TestHelper ' ValidatorTester.cs:第40行
我认为你使用了错误的测试方法:
_agentValidator.ShouldNotHaveValidationErrorFor(...)
ShouldNotHaveValidationErrorFor
保证错误不存在。但是你想要一个错误存在!您想要的函数是ShouldHaveValidationErrorFor
。