На самом деле я давно не писал никаких модульных тестов, может быть, я просто не в курсе событий. Я пытаюсь проверить HttpResponseMessage с контроллера в моем WebApi. У меня нет ошибки, на самом деле тест завершается зеленой галочкой, что мне кажется странным, потому что, когда я начал отлаживать его, чтобы дважды проверить утверждение, я понял, что никогда не попадал в свое утверждение. Вот мой тест.
[Fact]
public void TestDudeManController()
{
//arrange
DudeManModel dmmRequest = new DudeManModel();
DudeManModel dmmResponse = new DudeManModel();
HttpResponseMessage hrm = new HttpResponseMessage();
dmmRequest.Name = "Test-Duder";
dmmResponse.Name = "Hey " + dmmRequest.Name + ", Im The Dude man.";
var dudeController = new DudeManController();
dudeController.Request = new HttpRequestMessage();
dudeController.Configuration = new HttpConfiguration();
//act
hrm = dudeController.Dude(dmmRequest);
//assert
//Assert.Equal(4, 4);
Assert.True(hrm.IsSuccessStatusCode);
}
Вот контроллер
[HttpPost]
[Route("dude")]
public HttpResponseMessage Dude([FromBody]DudeManModel name)
{
log.Info("WEBAPI POST INITIATED::NAME IS::" + name.Name);
name.Name = "Hey " + name.Name + ", Im The Dude man.";
name.Link = "dude.png";
log.InfoFormat("WEBAPI POST UPDATED::NAME IS::{0}::PIC IS::{1}", name.Name, name.Link);
return Request.CreateResponse(HttpStatusCode.OK, name);
}
В основном я добираюсь до этой строки 'dudeController.Configuration = new HttpConfiguration();' вот и все. Тест окончен. Тест отмечен как пройденный.
Это стандартный .Net Framework WebApi, и я использую xUnit для тестирования. Любая идея, почему мой тест игнорирует эту строку как успешный тест, я был бы очень признателен за помощь. Я не нашел многого в своих поисках до сих пор.
*****Отказ от ответственности
На всякий случай, если кому-то интересно, в этом тестовом контроллере нет ничего странного. Сам код — это просто дань уважения фильму «Большой Лебовски». Он есть и навсегда останется «Чуваком». Но, читая мой код, он выглядит немного забавно теперь, когда я вижу его здесь.