Web Api单元测试写法

简介:
例如我们在Web Api项目中有个Controller
public class SomeController : ApiController
{
public HttpResponseMessage Get()
{
// 一些操作
return Request.CreateResponse(HttpStatusCode.OK, someModel);
}
}
  如果你在单元测试中直接调用 SomeController 的Get()方法,那么你将会收到一个Exception提示Request为Null。
  因此我们需要在测试代码中构造一个Request,有两种方法
  1、简单构造法
[TestMethod]
public void UnitTestMethod()
{
// 环境准备部分
YourNameSpace.Controllers.SomeController controller = new SomeController();
// 下面两个语句是构造一个简单的请求报文
controller.Request = new HttpRequestMessage();
controller.Request.SetConfiguration(new HttpConfiguration());
var result = controller.Get();
// 断言
}
  2、可控性更强的构造
[TestMethod]
public void UnitTestMethod()
{
// 环境准备部分
YourNameSpace.Controllers.SomeController controller = new SomeController();
var config = new HttpConfiguration();
var request = new HttpRequestMessage(HttpMethod.Post, "YourUrl");
var route = config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}");
var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "products" } });
controller.ControllerContext = new HttpControllerContext(config, routeData, request);
controller.Request = request;
controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;
var result = controller.Get();
// 断言
}
  然后就可以运行单元测试查看结果了。


最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
|
25天前
|
JSON API 数据库
解释如何在 Python 中实现 Web 服务(RESTful API)。
解释如何在 Python 中实现 Web 服务(RESTful API)。
21 0
|
23天前
|
安全 测试技术 API
|
24天前
|
JSON 测试技术 API
Postman Newman 实现 API 自动化测试的快速指南
Newman 是一款专为 Postman 打造的命令行工具,旨在通过自动运行 Postman 集合和环境,实现 API 测试的自动化。它使得开发者无需打开 Postman 图形界面,即可直接在命令行中执行测试用例。
|
24天前
|
XML JSON API
通过Flask框架创建灵活的、可扩展的Web Restful API服务
通过Flask框架创建灵活的、可扩展的Web Restful API服务
|
25天前
|
安全 测试技术 API
请描述在 Python WEB 开发中常用的测试方法。
请描述在 Python WEB 开发中常用的测试方法。
14 0
|
29天前
|
缓存 监控 API
Python Web框架FastAPI——一个比Flask和Tornada更高性能的API框架
Python Web框架FastAPI——一个比Flask和Tornada更高性能的API框架
46 0
|
30天前
|
缓存 负载均衡 Java
Python实现API接口并发测试
Python实现API接口并发测试
47 0
|
30天前
|
Web App开发 前端开发 测试技术
Web应用程序测试工具Selenium用法详解
Web应用程序测试工具Selenium用法详解
33 0
|
1月前
|
JSON API 数据格式
构建高效Python Web应用:Flask框架与RESTful API设计实践
【2月更文挑战第17天】在现代Web开发中,轻量级框架与RESTful API设计成为了提升应用性能和可维护性的关键。本文将深入探讨如何使用Python的Flask框架来构建高效的Web服务,并通过具体实例分析RESTful API的设计原则及其实现过程。我们将从基本的应用架构出发,逐步介绍如何利用Flask的灵活性进行模块化开发,并结合请求处理、数据验证以及安全性考虑,打造出一个既符合标准又易于扩展的Web应用。
601 4
|
1月前
|
架构师 前端开发 测试技术

热门文章

最新文章