gpt4 book ai didi

c# - FluentValidation 和异常消息的集成测试

转载 作者:太空狗 更新时间:2023-10-30 01:20:47 25 4
gpt4 key购买 nike

我正在使用 fluentvalidation 如下:

public class ProjectValidator : AbstractValidator<Project>
{
public ProjectValidator()
{
RuleFor(project => project.Name).NotEmpty().WithMessage("Project name cannot be empty.");
}
}

在某些服务中:

IValidator<Project> _projectValidator;
_projectValidator.ValidateAndThrow(project);

部分集成测试:

var validationException = Assert.Throws<ValidationException>(() => projectRepository.SaveOrUpdate(project));
Assert.That(validationException.Message, Is.EqualTo("Project name cannot be empty."));

这显然不起作用,因为 validationException 可能包含许多错误。即使它只包含一个错误,字符串也如下所示:

Validation failed: -- Project name cannot be empty.

您将如何检查验证结果/包含指定的验证消息?:

Project name cannot be empty.

最佳答案

您可以对 validationException.Errors 集合进行断言:

Assert.IsNotNull(validationException.Errors.SingleOrDefault(error => error.ErrorMessage.Equals("Project name cannot be empty.")));

或者,您可以使用 FluentAssertions 执行相同的操作:

validationException.Errors.Should().Contain(error => error.ErrorMessage.Equals("Project name cannot be empty."));

关于c# - FluentValidation 和异常消息的集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17815428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com