Это функция контроллера, которую я тестирую ...
[HttpPost]
public IActionResult Send([FromBody] MessageViewModel messageViewModel)
{
try
{
if (ModelState.IsValid)
{
var recipients = messageViewModel.To.Select(p => new Recipient { MobileNumber = p.MobileNumber, EmailAddress = p.EmailAddress });
Message message = new Message
{
To = recipients,
Subject = messageViewModel.Subject,
Body = messageViewModel.Body
};
var result = this.notifications.Send(message);
if(result)
{
this.logger.LogInformation(LoggingEvents.SendItem, $"Item with subject {messageViewModel.Subject} has been sent");
return this.Ok(result);
}
else
{
this.logger.LogError(LoggingEvents.SendItemFail, $"Failure to send the item with subject {messageViewModel.Subject}");
return BadRequest();
}
}
else
{
this.logger.LogError(LoggingEvents.SendItemFail, $"Invalid input. Fail to send the item with subject {messageViewModel.Subject}");
return BadRequest();
}
}
catch (Exception ex)
{
this.logger.LogError(LoggingEvents.SendItemFail, $"Something went wrong: {ex}");
return this.StatusCode(StatusCodes.Status500InternalServerError);
}
}
Это мои коды тестирования xunit.
public class Send
{
[Fact]
public void Should_ReturnOk_When_To_PropertyIsNull()
{
var mock_notificationsController = new Mock<NotificationsController>();
mock_notificationsController
.Setup(m => m.Send(It.IsAny<MessageViewModel>()))
.Returns();
}
public MessageViewModel GetMessageViewModel()
{
List<RecipientViewModel> recipients = new List<RecipientViewModel>();
recipients.AddRange(new[]
{
new RecipientViewModel
{
EmailAddress = "randomdummysender16",
MobileNumber = "639292820947"
},
});
var message = new MessageViewModel()
{
To = recipients,
Subject = "Test Subject",
Body = null
};
return message;
}
}
Я не знаю, что вернуть, явведите BadRequestResult, но в нем говорится, что «BadRequestResult» - это тип, который недопустим в данном контексте.
Не получается найти надежную документацию или руководство по модульному тестированию вашего контроллера, есть ли у кого-нибудь источник?