私のWeb APIのメソッドはすべて非同期で、データを返すことに問題はありませんでした。これは典型的なコントローラのメソッドは、私のプロジェクトの一つで次のようになります。
[HttpGet]
[Route("v1/samples/{id}", Name="SampleGet")]
[ResponseType(typeof(string))]
public async Task<IHttpActionResult> Get(int id)
{
return Ok("value");
}
私が言ったように、私はこれと私の現在のプロジェクトのすべてのこの一般的なパターンに従うようにそれをやって問題を抱えていたことがありません。
ユニットテストのレスポンスは次のようになります。 NUnitのとFluentAssertionsを使用してOKの応答をテストするには:
[Test]
public async Task GetReturns200IfSuccessful()
{
//Arrange
//Act
var response = await _sut.GetAsync();
//Assert
response.Should().BeOfType<OkNegotiatedContentResult<string>();
}
あなたはレスポンスの値をチェックしたい場合は、次の操作を行います。助け
[Test]
public async Task GetReturnsValue()
{
//Act
var response = await _sut.GetAsync();
var result = response as OkNegotiatedContentResult<AssetList>;
//Assert
result.Should().Be("value");
}
希望を。
これは有望だと思われますが、返されたステータスコードなどの単体テストはどうですか? 'response.ExecuteAsync(CancellationToken.None).Result.StatusCode'はnull参照例外をスローします。 – awj
ユニットテストの例をいくつか追加しました – MichaelDotKnox