1. 程式人生 > >DotNetCore跨平臺~功能測試TestHost的使用

DotNetCore跨平臺~功能測試TestHost的使用

回到目錄

之前寫了關於自動化測試的相關文章,包括gitlab,unittest,jenkins pipeline等,基於都是功能點的測試,當我們的框架或者業務修改之後,需要走一篇自動化測試,以此來保證我們的修改過的功能是正確的,而今天主要說一下流程測試,從api網站的入口,從一個請求開始到結束這個過程,我們可以通過TestHost來完成!

一個完整的流程化測試需要經過以下幾個步驟:

  1. 建立xunit專案
  2. 引用需要測試的api專案
  3. 新增WebFixture攔截器,注意其中的startup是指api專案的,建立測試使用的TestServer和HttpClient
  4. 在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); }

這樣,一個流程化測試的例子就完成了,還是比較簡單的!

關鍵在於找到這種測試的方法!

回到目錄