現在、ASP.NETコアプロジェクトで単体テストを実装しており、APIコントローラのPOSTメソッドをテストする必要があります。ここでPOSTメソッドの例です。ASP.NETコアを使用した単体テストでのPOST要求のシミュレート
public class Product
{
[Required]
[MaxLength(25)]
public string Name { get; set; }
[MaxLength(200)]
public string Description { get; set; }
}
を主なアイデアが両方作成したテスト(201)とも不正な要求することです:
[HttpPost]
public IActionResult Post([FromBody]Product product)
{
if (!ModelState.IsValid)
{
return BadRequest();
}
try
{
var returnValue = productService.Save(product);
return CreatedAtRoute(nameof(Post), new { returnValue = returnValue }, product);
}
catch
{
return BadRequest();
}
}
そして、ここでは、私が使用していたモデルの一例です(400)結果が得られる。私はthis pageに行き、Created(201)はうまく動作します。しかし、私がBad Request(401)に同じロジックを適用したとき、実際のリクエストをしていないので動作しませんでした。しかし、 "間違った"値でPostManを使用しようとすると、予想どおり400になった。
単体テストからPOSTリクエストをシミュレートするにはどうすればよいですか?または私は何かを逃していますか?
ASP.NET Coreの場合は、このドキュメントを参照してください。ここには、ユニットテストコントローラに関するセクションがあり、POSTを使用した例があります。https://docs.microsoft.com/en-us/aspnet/core/ mvc/controllers/testing – Svek
情報をありがとう@Svek!私は完全に "controller.ModelState.AddModelError"を忘れていました。これは間違いなく助けになるでしょう! –
助けてくれてうれしいです。 – Svek