Я хочу протестировать контроллер с помощью FluentValidation.
[Fact]
public async void TestSaveItem()
{
var item = new item()
{
ItemProperty = null
};
var result = await itemController.CreateItemAsync(item);
Assert.IsType<BadRequestObjectResult>(result);
}
// Controller
public async Task<ActionResult> CreateItemAsync([FromBody] Item item)
{
if(!ModelState.IsValid)
{
return BadRequest(ModelState);
}
try
{
await _context.Items.AddAsync(item);
await _context.SaveChangesAsync();
return CreatedAtAction(nameof(CreateNotificationAsync), new { id = item.item.Id}, null);
}
catch (Exception ex)
{
return ValidationProblem();
}
}
public class NotificationValidator : AbstractValidator<NotificationDto>
{
public NotificationValidator()
{
RuleFor(x => x.ItemProperty ).NotNull().WithMessage("ItemProperty should have value");
}
}
Тестовый контроллер должен возвращать значение true, если типом является BadRequestObjectResult, но тип контроллера возвращается: CreatedAtAction.