集成測試
集成測試,也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求(如根據結構圖)組裝成為子系統或系統,進行集成測試。
實踐表明,一些模塊雖然能夠單獨地工作,但並不能保證連接起來也能正常的工作。一些局部反映不出來的問題,在全局上很可能暴露出來。
摘自百度百科
ASP.NET Core 集成測試
新建一個 ASP.NET Core Webapi 項目:
修改一下自帶的ValuesController
:
public class ValuesController : Controller
{
public int Add([FromQuery]int a,[FromQuery] int b)
{
return a + b;
}
}
用Postman測試一下:
經過測試我們的API是沒有問題的。
添加一個xUnit測試項目
添加一個Nuget Microsoft.AspNetCore.TestHost
包:
給測試項目添加webapi項目的引用:
添加如下測試代碼:
private readonly HttpClient _client;
public UnitTest1()
{
var builder = new WebHostBuilder().UseStartup<Startup>();
var testServer = new TestServer(builder);
_client = testServer.CreateClient();
}
[Fact]
public async Task Test1()
{
var result = await _client.GetAsync("Values/Add?a=1&b=2");
result.EnsureSuccessStatusCode();
var data = await result.Content.ReadAsStringAsync();
Assert.Equal("3", data);
}
運行一下:
可以看到,一個簡單的集成測試已經通過了。
文檔參考
官方文檔 https://docs.microsoft.com/en-us/aspnet/core/testing/integration-testing
Demo:https://github.com/stulzq/BlogDemos/tree/master/IntegrationTests