如何设置单元测试系统来测试Web API 2?

时间:2014-08-21 19:54:25

标签: unit-testing asp.net-web-api asp.net-web-api2

这是我的设置和困境

我们创建了一个ipad应用程序,它使用HTML包装器向用户显示信息。它是一个telerik App构建器解决方案,运行带有JS的HTML 5站点,并连接到我们的Web API端以获取数据。

服务器端是在Web项目上运行的WEB API 2,没有Katana,只是SPA示例文件中的相同修改模板。

用户在IPAD上进行身份验证的方式是发出/令牌请求。实际上这里是 用户请求令牌时的实际小提琴流量

POST http://development01/MobileAPITest/Token HTTP/1.1
Host: development01
Connection: keep-alive
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Language: en-us
Accept: */*
Origin: file://
Content-Length: 57
Connection: keep-alive
User-Agent: Mozilla/5.0 (iPad; CPU OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML,     like Gecko) Mobile/11D257 (391865488)

grant_type=password&username=johndoe&password=pass1234

因此。如何设置测试系统以在http级别测试?

1 个答案:

答案 0 :(得分:1)

我假设你想测试Web Api本身?

您不需要通过HTTP协议测试控制器,该框架已经过测试,直到为您的方法提供请求对象和传入模型的反序列化版本。

为站点设置测试项目并通过直接向控制器方法发出命令来测试控制器功能。这样可以减轻HTTP客户端与测试混合的负担。

如果您需要编写包含通过HTTP调用API的测试,那么我建议您使用HTTP客户端从测试项目中调用API。

可以在此处找到ASP.NET Web Api 2的良好分步单元测试教程: http://www.asp.net/web-api/overview/testing-and-debugging/unit-testing-with-aspnet-web-api

用于路由测试: http://www.asp.net/web-api/overview/testing-and-debugging/unit-testing-controllers-in-web-api