Assuming a class with a custom validator, similar to the following:
1public record FeedbackCreateRequest2{3 public string Url { get; set; } = null!;45 public FeedbackResponse Response { get; set; } // An enum consisting of 3 options67 public string? Context { get; set; }89 public class Validator : AbstractValidator<FeedbackCreateRequest>10 {11 public Validator()12 {13 RuleFor(request => request.Url)14 .NotEmpty();1516 RuleFor(request => request.Response)17 .IsInEnum();1819 RuleFor(request => request.Context)20 .MaximumLength(250);21 }22 }23}
You can easily verify the request object is being validated as you expect by instantiating the validator and calling ShouldHaveValidationErrorFor:
1[Fact]2public async Task FeedbackCreateRequestValidator_InvalidFields_IncludesRelevantErrors()3{4 // Arrange5 var validator = new FeedbackCreateRequest.Validator();67 var request = new FeedbackCreateRequest8 {9 Response = (FeedbackResponse)5,10 Context = new string('a', 251),11 };1213 // Act14 var result = await validator.TestValidateAsync(request);1516 // Assert17 Assert.Equal(3, result.Errors.Count);18 result.ShouldHaveValidationErrorFor(feedback => feedback.Url);19 result.ShouldHaveValidationErrorFor(feedback => feedback.Response);20 result.ShouldHaveValidationErrorFor(feedback => feedback.Context);21}
