Donnerstag, Februar 27, 2020

wie kann ich die unit-test-ein Beitrag (web-api) Aufruf mit einem token?

Habe ich ein httppost-web-api-Methode. Ich übergeben zu müssen, in ein token ist ein authorization-header und sammeln Sie die Antwort.

Bin ich mit dem web-api-2. Meine post-Methode gibt IHttpActionResult ok(Modell).

Habe ich getestet, die web-api mit POSTMAN-rest client, der funktioniert.

Ich geblieben bin an einem Punkt, wo ich nicht in der Lage zu schreiben, einen UNIT-TEST zu testen, meine API.

Außerdem kann ich die Unit-test-Projekt und die web-api-Projekt in der gleichen Projektmappe? Ich habe versucht, unit-test-Projekt und web-api-Projekt als startup-Projekte. Aber Unit-test-Projekt ist nur eine Bibliothek, so dass nicht funktionieren würde.

Kann jemand bitte führe mich durch diesen ?

InformationsquelleAutor user3825003 | 2014-07-10

1 Kommentar

  1. 14

    Beginnen mit, Sie haben in der Regel die Unit-test-Projekt und das Api-Projekt in der gleichen Projektmappe. Aber das API-Projekt sollte die startup-Projekt. Verwenden Sie den visual studio test-explorer oder eine andere gleichwertige(f.x. ein build-server) zum ausführen von unit-tests.

    Zum testen Ihrer API-Controller würde ich vorschlagen, Sie erstellen eine Owin-test-server in Ihrer unit-tests und verwenden Sie es zum ausführen von HTTP-requests gegen Ihre API.

        [TestMethod]
        public async Task ApiTest()
        {
            using (var server = TestServer.Create<Startup>())
            {
                var response = await server
                    .CreateRequest("/api/action-to-test")
                    .AddHeader("Content-type", "application/json")
                    .AddHeader("Authorization", "Bearer <insert token here>")
                    .GetAsync();
    
                //Do what you want to with the response from the api. 
                //You can assert status code for example.
    
            }
        }
    

    Werden Sie jedoch haben, um dependency injection zu injizieren Ihre mocks/stubs. Würden Sie konfigurieren Ihren dependency injection in eine startup-Klasse in die Tests Projekt.

    Hier ein Artikel, der erklärt, der Owin-test-server und die Start-Klasse im detail.

Kostenlose Online-Tests