Модульный тест контроллера WebApi не работает для HttpResponseMessage

На самом деле я давно не писал никаких модульных тестов, может быть, я просто не в курсе событий. Я пытаюсь проверить 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 для тестирования. Любая идея, почему мой тест игнорирует эту строку как успешный тест, я был бы очень признателен за помощь. Я не нашел многого в своих поисках до сих пор.

*****Отказ от ответственности

На всякий случай, если кому-то интересно, в этом тестовом контроллере нет ничего странного. Сам код — это просто дань уважения фильму «Большой Лебовски». Он есть и навсегда останется «Чуваком». Но, читая мой код, он выглядит немного забавно теперь, когда я вижу его здесь.


person Puerto    schedule 06.04.2017    source источник


Ответы (1)


Так что это странно, но мой проект был настроен на выпуск в Visual Studio, я переключил его на отладку, и теперь он работает, я добираюсь до своего утверждения. Простое исправление. Я не уверен в поведении относительно того, почему, если у кого-то есть что добавить, пожалуйста, дайте мне знать.

person Puerto    schedule 06.04.2017