您的位置:首页 > 编程语言 > ASP

ASP.NET 5 Web Api 集成测试

2015-11-17 10:18 531 查看

一、在测试项目中引用Web Api项目

引用Web Api项目的目的是使用Startup类,在Startup类中重载Configure方法,代码如下:

public void Configure(IApplicationBuilder app)
{
// Configure the HTTP request pipeline.
app.UseStaticFiles();

// Add MVC to the request pipeline.
app.UseMvc();
}

二、测试项目中安装需要的包

project.json中依赖包如下

//略去所需的项目以来
"Microsoft.AspNet.Hosting": "1.0.0-beta8",
"Microsoft.AspNet.Mvc": "6.0.0-beta8",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta8",
"Microsoft.AspNet.TestHost": "1.0.0-beta8",
"Microsoft.Framework.DependencyInjection": "1.0.0-beta8",
"xunit": "2.1.0",
"xunit.runner.dnx": "2.1.0-beta6-build191"

三、编写集成测试类

public class YourTestClass
{
private readonly Action<IApplicationBuilder> _app;
private readonly Action<IServiceCollection> _services;

public WealthApiTest()
{
var startup = new Startup(new HostingEnvironment()); // 使用Web Api项目中的Startup类
_app = startup.Configure; // 将第一步中重载的Configure方法赋给_app委托
_services = startup.ConfigureServices;
}

// 单独的测试方法
}

四、编写测试方法

第三步已经做好了编写测试方法的准备,下面展示一个简单的get请求的测试

[Fact]
public async Task GetByIdTest()
{
// Arrange
var server = TestServer.Create(_app, _services);
var client = server.CreateClient();

// Act
var response = await client.GetAsync("http://localhost/api/YourController/1");
var deserialized = await response.Content.ReadAsStringAsync();

// Assert
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
}

五、执行测试

可以在VisualStudio中测试,也可以使用dnx test命令执行测试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: