Wie man Httpverbs mit httpMessageHandler verspottetC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie man Httpverbs mit httpMessageHandler verspottet

Post by Anonymous »

In meinem C# -Projekt teste ich die Implementierung für einen API -Dienst, der den HaupthttpverB wie Get , post , put und löschen verwendet. Um das GET zu überprüfen, habe ich diesen Mock
geschrieben.

Code: Select all

var mockHandler = new Mock(MockBehavior.Strict);
mockHandler
.Protected()
.Setup(
"SendAsync",
ItExpr.Is(m => m.Method == HttpMethod.Get),
ItExpr.IsAny())
.ReturnsAsync(mockResponse);
< /code>
Dann mache ich den Anruf zum API -Dienst und möchte die Rückgabe überprüfen. < /p>
mockHandler.Protected().Verify(
"SendAsync",
Times.Exactly(1),
ItExpr.Is(m => m.Method == HttpMethod.Get),
ItExpr.IsAny());
Dies funktioniert für die Get -Methode. Wenn ich den Code kopiere und GET durch die anderen ersetze, wie zum Beispiel
var mockHandler = new Mock(MockBehavior.Strict);
mockHandler
.Protected()
.Setup(
"PostAsync",
ItExpr.Is(m => m.Method == HttpMethod.Post),
ItExpr.IsAny())
.ReturnsAsync(mockResponse);
< /code>
Ich erhalte einen Fehler < /p>

Testmethode psc.csharp.library.apiclient.Tests.APIServicetests.put_Person_Test_valid -Ausnahme:
bowStem.argumentException: Keine geschützte Methode HTTTPMESSAGEMESSGELEGE. kompatibel mit den angegebenen Argumenten (httprequestMessage, cancellationToken). Mein Quellcode ist auf Github verfügbar.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post