使用Microsoft.AspNetCore.TestHost进行完整的功能测试

Microsoft.AspNetCore.TestHost是可以用于Asp.net Core 的功能测试工具。很多时候我们对一个接口写好了,单元测试什么的也都ok了,需要完整调试一下,检查下单元测试未覆盖到的代码是否有bug。步骤为如下:程序打个断点->F5运行->通常需要登录个测试账号->查找要调试api的入口->获得断点开始调试=>代码报错?很多时候需要停止调试修改->回到第一步。如此反复循环,做着重复的工作,Microsoft.AspNetCore.TestHost正是为了解决这个问题,它可以让你使用xTest或者MSTest进行覆盖整个HTTP请求生命周期的功能测试。

进行一个简单的功能测试

新建一个Asp.net Core WebApi和xUnit项目

使用Microsoft.AspNetCore.TestHost进行完整的功能测试

ValuesController里面自带一个Action

使用Microsoft.AspNetCore.TestHost进行完整的功能测试

我们在xUnit项目里面模拟访问这个接口,首选安装如下nuget包:

Microsoft.AspNetCore.TestHost

Microsoft.AspNetCore.All(很多依赖懒得找的话直接安装这个集成包,百分之90涉及到AspNetCore的依赖都包含在里面)

然后需要引用被测试的AspnetCoreFunctionalTestDemo项目,新建一个测试类ValuesControllerTest

使用Microsoft.AspNetCore.TestHost进行完整的功能测试

将GetValuesTest方法替换为如下代码,其中startup类是应用自AspnetCoreFunctionalTestDemo项目

[Fact] public void GetValuesTest() { var client = new TestServer(WebHost .CreateDefaultBuilder() .UseStartup<Startup>()) .CreateClient(); string result = client.GetStringAsync("api/values").Result; Assert.Equal(result, JsonConvert.SerializeObject(new string[] { "value1", "value2" })); }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzwsx.html