私はこのコードを持っていますが、httpClientに何があっても文字列応答を返すことはできません。引数がNSubstituteと正しく動作しない
private HttpResponseMessage StringResponse(string content)
{
var response = new HttpResponseMessage(HttpStatusCode.OK);
if (content != null)
{
response.Content = new StringContent(content);
}
return response;
}
は私が間違って何をやっている:誰かがこれを再生したい場合はここで
HttpClient httpClient = Substitute.For<HttpClient>();
httpClient.PostAsync("/login", Arg.Any<StringContent>())
.Returns(this.StringResponse("{\"token\": \"token_content\"}"));
Console.WriteLine(await httpClient.PostAsync("/login", new StringContent(string.Empty)) == null); // True
はStringResponse
方法ですか?
私は
httpClient.PostAsync("/login", Arg.Any<StringContent>())
.ReturnsForAnyArgs(this.StringResponse("{\"token\": \"token_content\"}"));
を行う場合には動作しますが、私はちょうど任意の引数を必要としない、私はそれらのいずれかのタイプStringContent
であるように、文字列"/login"
およびその他する必要があります。
HttpContent
のようにArg.Is
コールに一般的なものを追加しようとしましたが、それでも機能しません。
.NETコアでNSubstitute 2.0.0-rc
を使用していますが、NSubstitute 1.10.0
をスタンドアロンコンソールアプリケーションで使用しても同じ結果が得られました。
どのバージョンのnsubstituteを使用していますか? –
.Net Coreで2.0.0-rcを使用していますが、このコードを通常のコンソールアプリケーションで1.10.0で試してみましたが、同じ結果が得られました。 –
Hmm。それを再現しましたが、まだそれを修正することはできませんでした... –