回到目錄 之前寫了關於自動化測試的相關文章,包括gitlab,unittest,jenkins pipeline等,基於都是功能點的測試,當我們的框架或者業務修改之後,需要走一篇自動化測試,以此來保證我們的修改過的功能是正確的,而今天主要說一下流程測試,從api網站的入口,從一個請求開始到結束這個過 ...
之前寫了關於自動化測試的相關文章,包括gitlab,unittest,jenkins pipeline等,基於都是功能點的測試,當我們的框架或者業務修改之後,需要走一篇自動化測試,以此來保證我們的修改過的功能是正確的,而今天主要說一下流程測試,從api網站的入口,從一個請求開始到結束這個過程,我們可以通過TestHost來完成!
一個完整的流程化測試需要經過以下幾個步驟:
- 建立xunit項目
- 引用需要測試的api項目
- 添加WebFixture攔截器,註意其中的startup是指api項目的,建立測試使用的TestServer和HttpClient
- 在xunit里使用HttpClient即可
一 建立xunit項目
二 引用需要測試的api項目
三 添加WebFixture攔截器,註意其中的startup是指api項目的,建立測試使用的TestServer和HttpClient
/// <summary> /// Web攔截器 /// </summary> public class WebFixture { public TestServer Server; public HttpClient Client; public WebFixture() { var hostBuilder = new WebHostBuilder(); var Server = new TestServer(hostBuilder.UseStartup<Lind.DotNetCore.RepositoryTest.Startup>()); this.Client = Server.CreateClient(); } }
四 在xunit里使用HttpClient即可
[Fact] public void TestLindDotNetCoreRepositoryTest() { var msg = _webFixture.Client.GetAsync("/dapper") .Result .Content .ReadAsStringAsync() .Result; Assert.NotNull(msg); }
這樣,一個流程化測試的例子就完成了,還是比較簡單的!
關鍵在於找到這種測試的方法!