一、MessageHandler不一定是全局的,也可以只应用到指定的Router上
1、定义一个handler
// Pipelines
HttpMessageHandler affiliateShipmentsPipeline =
HttpClientFactory.CreatePipeline(
new HttpControllerDispatcher(config),
new[] { new AffiliateShipmentsDispatcher() });2、将handler应用在指定的router上
// Routes
routes.MapHttpRoute(
"AffiliateShipmentsHttpRoute",
"api/affiliates/{key}/shipments/{shipmentKey}",
defaults: new { controller = "AffiliateShipments", shipmentKey = RouteParameter.Optional },
constraints: new { key = new GuidRouteConstraint(), shipmentKey = new GuidRouteConstraint() },
handler: affiliateShipmentsPipeline);

二、HttpRequest头添加Authorization信息
HttpRequestMessage request = ConstructRequest(httpMethod, uri, mediaTypes);
request.Headers.Authorization = new AuthenticationHeaderValue(
"Basic",
EncodeToBase64(
string.Format("{0}:{1}", username, password)));private static string EncodeToBase64(string value) {
byte[] toEncodeAsBytes = Encoding.UTF8.GetBytes(value);
return Convert.ToBase64String(toEncodeAsBytes);
}

三、模拟异步发送Http请求
internal static async Task<HttpResponseMessage> GetResponseAsync(
HttpConfiguration config, HttpRequestMessage request) {using (var httpServer = new HttpServer(config))
using (var client = HttpClientFactory.Create(innerHandler: httpServer)) {return await client.SendAsync(request);
}
}

四、模拟WebApi HttpRequestMessage的Content
request.Content = new ObjectContent<ShipmentRequestModel>(
shipmentRequestModel, new System.Net.Http.Formatting.JsonMediaTypeFormatter());

五、HttpRequestMessage对象获取依赖注入接口
internal static class HttpRequestMessageExtensions {internal static IShipmentService GetShipmentService(this HttpRequestMessage request) {return request.GetServic e<IShipmentService>();
}internal static IMembershipService GetMembershipService(this HttpRequestMessage request) {return request.GetService<IMembershipService>();
}private static TService GetService<TService>(this HttpRequestMessage request) {IDependencyScope dependencyScope = request.GetDependencyScope();
TService service = (TService)dependencyScope.GetService(typeof(TService));return service;
}
}

转载于:https://www.cnblogs.com/gossip/p/4512418.html

WebApi单元测试记录相关推荐

  1. .net WebApi 开发中某些注意事项

    目前在做.net开发. 需要开发一套webapi. 这里记录一下某些注意点. 1. 如何开启跨域 如果webapi的用户是域外用户,则需要根据需要开放跨域. 首先安装Install-Package M ...

  2. SVN搭建文件服务器

    SVN安装及使用说明: 1.下载 svn-1.4.6-setup.exe TortoiseSVN-1.4.6.11647-win32-svn-1.4.6.msi SVNService.zip 2.安装 ...

  3. 项目经理CMMI3工作指南

    1.引言 1.1编写目的 指导项目经理更好地进行每一阶段的工作,也可指导项目团队成员更好了解每一阶段的工作,以便更好配合项目经理进行工作. 作为项目团队培训的使用材料. 1.2针对读者 主要针对项目经 ...

  4. .NET WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作)

    .NET WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作) 参考文章: (1).NET WebAPI 用ExceptionFilt ...

  5. WebApi服务监控 log4net记录监控日志

    在项目中引用log4net.dll 1.在Models文件夹内,定义一个WebApiMonitorLog ,监控日志对象 /// <summary>/// 监控日志对象/// </s ...

  6. net core WebApi——使用xUnits来实现单元测试

    前言 从开始敲代码到现在,不停地都是在喊着记得做测试,记得自测,测试人员打回来扣你money之类的,刚开始因为心疼钱(当然还是为了代码质量),就老老实实自己写完自己跑一遍,没有流程没有规划没有测试文档 ...

  7. .NET WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作)...

    好吧,还是那个社区APP,非管理系统,用户行为日志感觉不是很必要的,但是,错误日志咱还是得记录则个.总不能上线后报bug了让自己手足无措吧,虽然不管有木有错误日志报bug都是件很头疼的事... 我们知 ...

  8. 【个人项目】项目记录:github链接、设计实现、单元测试、性能分析与改进、PSP完成表格、总结反思

    项目记录 一.github链接 链接:https://github.com/LLFKirito/SudokuWork-BIT1120161918/ 二.设计实现 总体设计 程序流程图如下 程序分为ma ...

  9. go单元测试踩坑记录

    Go踩坑记录 1. go单元测试 测试文件名字必须是xxx_test后缀 测试函数必须是Test开头(否则报错,no test to run) 1.1 gomock单元测试 gomock对接口进行打桩 ...

最新文章

  1. Go语言之并发示例-Pool(二)
  2. FeiBoStr 斐波那契
  3. 极简设计如何实现(一)
  4. 函数计算支持 MySQL 实例绑定
  5. C#图片按指定大小分割
  6. 语音基础知识-基本语音知识,声谱图,log梅普图,MFCC,deltas详解
  7. 快递查询小程序源码可运营+微信物流快递查询小程序
  8. oracle model类型,Oracle SQL高级编程——Model子句全解析-Oracle
  9. 多示例学习 MIL(multiple instance learning) 理解
  10. 电气工程类中文核心期刊
  11. java实现筑业软件官网下载,筑业资料软件2020旗舰版|筑业资料软件免费官方下载-系统族...
  12. 进入mariadb_MariaDB基础操作
  13. 文氏桥振荡电路多类分析 LM386 DZ006套件
  14. Color类颜色对照表
  15. creator 微信小游戏存取数据
  16. matlab 读ctl,用matlab将nc数据读出来,写成二进制文件,然后用grads画图
  17. 山东大学nlp实验--词向量
  18. 用HTML写一个2023跨年动画代码(烟花+自定义文字+背景音乐+雪花+倒计时)
  19. Java 机内码 String 转化
  20. 管理运筹学软件计算机解咋看,第3章 线性规划问题的计算机求解_中国地质大学(武汉):管理运筹学(郭海湘)_ppt_大学课件预览_高等教育资讯网...

热门文章

  1. 程序员听歌该有的样子
  2. 大数据-MapReduce计算框架
  3. Context是怎么在Go语言中发挥关键作用的
  4. Laravel核心解读--控制器 1
  5. 最新conda设置清华源
  6. Ajax+SpringMVC+JSON登录验证
  7. Hbase 实现微博好友关注功能
  8. dubbo服务执行过程源码分析
  9. 如何使用ILSpy 把发布版本反编译成源码
  10. 如何找到某个方法的声明