ASP.NET Core 集成测试
集成測(cè)試
集成測(cè)試,也叫組裝測(cè)試或聯(lián)合測(cè)試。在單元測(cè)試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求(如根據(jù)結(jié)構(gòu)圖)組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測(cè)試。
實(shí)踐表明,一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接起來(lái)也能正常的工作。一些局部反映不出來(lái)的問(wèn)題,在全局上很可能暴露出來(lái)。
摘自百度百科
ASP.NET Core 集成測(cè)試
新建一個(gè)?ASP.NET Core Webapi?項(xiàng)目:
修改一下自帶的ValuesController?:
public class ValuesController : Controller{ ? ?public int Add([FromQuery]int a,[FromQuery] int b) ? ?{ ? ? ? ?return a + b;} }用Postman測(cè)試一下:
經(jīng)過(guò)測(cè)試我們的API是沒(méi)有問(wèn)題的。
添加一個(gè)xUnit測(cè)試項(xiàng)目
添加一個(gè)Nuget?Microsoft.AspNetCore.TestHost包:
給測(cè)試項(xiàng)目添加webapi項(xiàng)目的引用:
添加如下測(cè)試代碼:
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); }運(yùn)行一下:
可以看到,一個(gè)簡(jiǎn)單的集成測(cè)試已經(jīng)通過(guò)了。
文檔參考
官方文檔?https://docs.microsoft.com/en-us/aspnet/core/testing/integration-testing
Demo:https://github.com/stulzq/BlogDemos/tree/master/IntegrationTests
原文:http://www.cnblogs.com/stulzq/p/8679282.html
.NET社區(qū)新聞,深度好文,歡迎訪問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的ASP.NET Core 集成测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: IdentityServer4实战 -
- 下一篇: ASP.NET Core依赖注入深入讨论