4
다음과 같이 내가 fluentvalidation을 사용하고 있습니다 : 분명히통합 FluentValidation의 테스트 및 예외 메시지
var validationException = Assert.Throws<ValidationException>(() => projectRepository.SaveOrUpdate(project));
Assert.That(validationException.Message, Is.EqualTo("Project name cannot be empty."));
이 :
통합 테스트의IValidator<Project> _projectValidator;
_projectValidator.ValidateAndThrow(project);
부분 : 일부 서비스
public class ProjectValidator : AbstractValidator<Project>
{
public ProjectValidator()
{
RuleFor(project => project.Name).NotEmpty().WithMessage("Project name cannot be empty.");
}
}
validationException으로 작동하지 않습니다. 잠재적으로 많은 오류가 있습니다. 오류가 하나만 포함 된 경우에도 문자열은 다음과 같습니다.
유효성 검사가 실패했습니다. - 프로젝트 이름은 비워 둘 수 없습니다.
어떻게는 유효성 검증/결과 지정된 검증 메시지?
프로젝트 이름은 비워 둘 수 없습니다 포함되어 있는지 확인합니다. 당신이 FluentAssertions를 사용하여 동일한 작업을 수행 할 수 있습니다,
Assert.IsNotNull(validationException.Errors.SingleOrDefault(error => error.ErrorMessage.Equals("Project name cannot be empty.")));
을 또는 :
감사합니다. 나는 항상 fluentassertion을 사용하고자했다. 유창한 주장 방법이 잘 작동한다. 감사. – cs0815
물론 이죠, 오신 것을 환영합니다. 나는 당신이 그것을 좋아하고 FluentValidation과 함께 사용한다고 생각했다. :) –