.NET webapi 的单元测试
2024-09-05 20:06:04
public abstract class MirAPIUnitTestCommon
{
public abstract string GetBaseAddress();
/// <summary>
/// CRUD
/// </summary>
/// <typeparam name="TResult"></typeparam>
/// <param name="api"></param>
/// <returns></returns>
protected TResult InvokeRequest<TResult, TArguemnt>(string api, HttpMethod httpMethod, TArguemnt arg)
{
using (var invoker = CreateMessageInvoker())
{
using (var cts = new CancellationTokenSource())
{
var request = new HttpRequestMessage(httpMethod, api);if (null != arg)
{
request.Content = new ObjectContent<TArguemnt>(arg, new JsonMediaTypeFormatter());
}
HttpClient httpClient = new HttpClient();
using (HttpResponseMessage response = httpClient.SendAsync(request, cts.Token).Result)
{
string result = response.Content.ReadAsStringAsync().Result;
return JsonConvert.DeserializeObject<TResult>(result);
}
}
}
}
private HttpMessageInvoker CreateMessageInvoker()
{
var config = new HttpConfiguration();
WebApiConfig.Register(config);
var server = new HttpServer(config);
var messageInvoker = new HttpMessageInvoker(server);
return messageInvoker;
}
}
最新文章
- Android使用C++截屏并显示
- 原生 CSS 网格布局学习笔记
- js 控制表单提交
- 【SVN】Error running context: 由于目标计算机积极拒绝,无法连接
- thinkphp3.2设置session的过期时间
- Oracle logmnr工具分析日志脚本
- 数据库的char(n)
- Jenkins进阶系列之——06FTP publisher plugin插件下载(支持绝对路径)
- HDU 1176免费馅饼 DP数塔问题转化
- mybatis insert前获取要插入的值
- Microsoft.Practices.Unity 给不同的对象注入不同的Logger
- Redis基础学习(五)&mdash;Redis的主从复制
- 简陋的 ASP.NET CORE 单页Web应用程序“框架”
- [ 面试没回答上的问题2]IOS上给body绑定click事件的bug
- Fundebug后端Java异常监控插件更新至0.3.1,修复Maven下载失败的问题
- linux 下的init 0,1,2,3,4,5,6知识介绍
- D6差分及树上差分
- 牛客训练四:Applese 涂颜色(费马小定理+快速幂)
- android bundle 对象 序列化
- Java堆外内存之五:堆外内存管理类ByteBuffer
热门文章
- [Java复习] JVM
- Linux-文件系统的简单操作
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_24-CMS前端页面查询开发-使用钩子方法实现立即查询
- Qt编写自定义控件33-图片切换动画
- [Python]编译错误:编码错误问题(SyntaxError: (unicode error) )
- React Native npm第三方报错
- Ubuntu+Django+uWSGI+Nginx部署Django项目
- 【c++基础】二进制格式输出char类型
- ubuntu安装ubuntu-kylin-software-center
- 在Flutter中构建布局