0

En fait, je n'ai pas écrit de test unitaire depuis un moment, peut-être que je suis juste à l'écart des choses. Im essayant de tester un HttpResponseMessage d'un contrôleur dans mon WebApi. Je n'ai pas d'erreur, en fait le test se termine par un chèque vert que je trouve étrange parce que quand je suis allé le déboguer pour vérifier l'affirmation je me suis rendu compte que je n'étais jamais en train de frapper mon affirmation. Voici mon test.Test de l'unité de contrôleur WebApi ne fonctionne pas pour HttpResponseMessage

[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);   

    } 

Voici le contrôleur

[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); 
    } 

Fondamentalement, je reçois à cette ligne 'dudeController.Configuration = new HttpConfiguration();' et c'est tout. Le test est terminé. Le test est marqué comme réussi.

Ceci est un .Net Framework WebApi standard et Im utilisant xUnit pour le test. N'importe quelle idée pourquoi mon test s'incline sur cette ligne comme un test réussi, j'apprécierais vraiment de l'aide. Je ne trouve pas grand-chose de mes recherches jusqu'à présent.

***** Avertissement

Juste au cas où quelqu'un se demande, il n'y a rien bizarre sur ce contrôleur de test. Le code lui-même est juste un hommage au film The Big Lebowski. Il est et sera toujours 'Le Mec'. Mais en lisant mon code, ça a l'air un peu drôle maintenant que je le vois ici.

Répondre

0

Donc, c'est bizarre mais j'avais mon projet défini sur Release dans Visual Studio, je l'ai basculé sur Debug et ça marche maintenant, j'arrive à mon affirmation. Correctif simple. Je ne suis pas sûr du comportement concernant pourquoi, si quelqu'un a quelque chose à ajouter s'il vous plaît faites le moi savoir.