Als Teil eines Komponententests versuche ich einen Schein IOwinRequest
zu erstellen, der HTTP-Formulardaten als seinen Körper enthält. Der betreffende Code arbeitet in der Produktion (ich kann die Formulardaten von Anfragen über einen Web-Browser gesendet erfolgreich gelesen), aber ich kann nicht verstehen, was ich falsch mache mit dem Unit-Test:Formulardaten an OwinRequest im Komponententest schreiben
[TestMethod]
public async Task TestPostData()
{
String rawFormData = "test=testValue&test2=testValue2";
MemoryStream stream = new MemoryStream();
using (StreamWriter writer = new StreamWriter(stream, Encoding.UTF8, 4 * 1024, true))
await writer.WriteAsync(rawFormData);
stream.Seek(0, SeekOrigin.Begin);
Mock<IOwinRequest> requestMock = new Mock<IOwinRequest>();
requestMock.SetupGet(r => r.Method).Returns("POST");
requestMock.SetupGet(r => r.Body).Returns(stream);
requestMock.SetupGet(r => r.ContentType).Returns("application/x-www-form-urlencoded");
Assert.IsNotNull(await requestMock.Object.ReadFormAsync());
}
Die Form Objekt, das von der ReadFormAsync
-Methode zurückgegeben wird, ist null
. Was vermisse ich? Dies ist auf. Net4.5 und Microsoft.Owin 3.0.1
Wurde dies gelöst? – Nkosi