ASP.NET Core Web API 集成测试中使用 Bearer Token
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ASP.NET Core Web API 集成测试中使用 Bearer Token,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1147字,纯文字阅读大概需要2分钟。
内容图文
在 ASP.NET Core Web API 集成测试一文中, 我介绍了ASP.NET Core Web API的集成测试.
在那里我使用了测试专用的Startup类, 里面的配置和开发时有一些区别, 例如里面去掉了用户身份验证相关的中间件.
但是有些被测试的行为里面需要用到身份/授权信息.
所以本文就介绍一下在API集成测试中发送请求时使用Bearer Token作为Authorization Header的情况.
集成测试中使用Bearer Token
我这个项目里生产时使用的是Identity Server 4, 而进行集成测试时使用Identity Server 4可能会不太方便, 所以我决定简化一下, 把这项工作就仅限制在API和测试项目这两个项目里.
首先为被测试系统添加授权/身份验证中间件, 修改StartupIntegrationTest:
在ConfigureServices()方法里, 首先添加一个权限策略, 要求所有的MVC Controller只有授权的用户才能访问.
随后使用AddAuthentication()添加身份验证中间件, 并设置Bearer作为方案, 通过AddJwtBearer()进行一些参数配置.
这里需要用到一个secret, 因为测试项目会用到, 所以暂时我把它弄成静态属性了.
最后在Configure()方法里使用该中间件即可.
来到集成测试项目的TestServerFixture类, 先要要做的就是使用上面的secret生成token, 并在HttpClient里设置Authorization Header即可:
生成token的代码里可以设置Identity Claims. 这里我只添加了Name和Role.
然后我们试试, 找一个集成测试进行调试, 我使用的是VSCode, 点击方法上面的debug:
我在被测试方法里添加了一些傻代码, 以便调试用户信息:
查看Claims:
可以看到在测试代码里设置了Identity Claims了, 说明使用Bearer Token成功了.
测试身份验证中间件
被测试系统使用了身份中间件: app.UserAnthentication(), 我们也可以测试一下这个中间件的功能, 如果Token不正确的话, 就应该返回401 UnAuthorized状态码:
这个测试代码很简单, 就是设置了一个不正确的token, 并Assert返回状态码是401.
该测试会通过:
文章略短, 就介绍到这.
原文:https://www.cnblogs.com/cgzl/p/9356596.html
内容总结
以上是互联网集市为您收集整理的ASP.NET Core Web API 集成测试中使用 Bearer Token全部内容,希望文章能够帮你解决ASP.NET Core Web API 集成测试中使用 Bearer Token所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。