ASP入門.ネットコア統合テスト
6919 ワード
この投稿では、ASPのテスト方法を簡単に紹介します.NETコアコントローラ.
「統合テスト」という用語は、データアクセスのテストやファイルシステムへのアクセスなどの他のケースもカバーします.
一般的なガイドラインは、ASP . NETを構築することです.NETコアプロジェクトの次の手順
クリエイト.NETコアテストプロジェクト
このパッケージは、
ベースクラスを作成する
テストしたいコントローラを振りましょう
実際の世界ではおそらくAPIの背後にあるデータベースを持っていて、APIキーやJWTによって保護されているかもしれません.
しかし、この投稿は、統合テストへの迅速な導入として機能します.
統合テストサンプル
「統合テスト」という用語は、データアクセスのテストやファイルシステムへのアクセスなどの他のケースもカバーします.
プロジェクトを設定する
一般的なガイドラインは、ASP . NETを構築することです.NETコアプロジェクトの次の手順
.
├── src
│ └── MyProject.Api
│ └── Controllers
│ └── ValuesController
└── test
├── IntegrationTests
│ └── MyProject.Api.Test
│ └── ValuesControllerTest
└── UnitTests
テストステットnugetをインストールしてください
クリエイト.NETコアテストプロジェクト
Microsoft.AspNetCore.TestHost
パッケージ.このパッケージは、
TestServer
.> Install-Package Microsoft.AspNetCore.TestHost
基底クラスの作成
ベースクラスを作成する
ControllerTest
クラスは継承できます.我々は、設定しますTestServer
and HttpClient
リクエストを実行するために使用します.[TestClass]
public abstract class IntegrationTestInitializer
{
protected HttpClient _client;
[TestInitialize]
public void Setup()
{
var builder = new WebHostBuilder()
.UseStartup<Startup>();
var server = new TestServer(builder);
_client = server.CreateClient();
}
}
コントローラを作成する
テストしたいコントローラを振りましょう
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value2" };
}
}
基本クラスを設定すると、基本クラスから継承して_client
APIに対する要求を実行するには[TestClass]
public class ValuesControllerTest : IntegrationTestInitializer
{
[TestMethod]
public async Task CanGetValues()
{
List<string> expectedResponse = new List<string> { "value1", "value2" };
var responseJson = await _client.GetStringAsync("api/values");
List<string> actualResponse = JsonConvert.DeserializeObject<List<string>>(responseJson);
Assert.AreEqual(expectedResponse.Count, actualResponse.Count);
foreach(var expectedValue in expectedResponse)
{
Assert.IsTrue(actualResponse.Contains(expectedValue));
}
}
}
このポストでは、非常に基本的なASPをテストする方法を説明しました.NETコアAPI.実際の世界ではおそらくAPIの背後にあるデータベースを持っていて、APIキーやJWTによって保護されているかもしれません.
しかし、この投稿は、統合テストへの迅速な導入として機能します.
カイオズワルド / 統合テストサンプル
ASP .NETコアサンプルプロジェクトの統合テストを書く方法を示します
統合テストサンプル
ASP .Net Coreサンプルプロジェクトの紹介
View on GitHub
Reference
この問題について(ASP入門.ネットコア統合テスト), 我々は、より多くの情報をここで見つけました
https://dev.to/kaos/introduction-to-asp-net-core-integration-testing-1e77
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(ASP入門.ネットコア統合テスト), 我々は、より多くの情報をここで見つけました https://dev.to/kaos/introduction-to-asp-net-core-integration-testing-1e77テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol