首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用令牌对post (web-api)调用进行单元测试?

如何使用令牌对post (web-api)调用进行单元测试?
EN

Stack Overflow用户
提问于 2014-07-10 18:22:54
回答 1查看 10.3K关注 0票数 9

我有一个httppost web api方法。我需要传入一个令牌作为授权头,并收集响应。

我正在使用web-API2。我的post方法返回IHttpActionResult ok(模型)。

我已经使用POSTMAN rest客户端测试了web-api,它是有效的。

我陷入了一个无法编写单元测试来测试我的API的阶段。

另外,我不能将单元测试项目和web-api项目放在同一个解决方案中吗?我尝试将单元测试项目和web-api项目设置为启动项目。但是单元测试项目只是一个库,所以它不会工作。

有没有人能帮我解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-13 14:09:41

首先,您通常将单元测试项目和Api项目放在同一个解决方案中。但是,API项目应该是启动项目。然后使用visual studio测试资源管理器或其他等效工具(f.x。构建服务器)来运行您的单元测试。

要测试您的API控制器,我建议您在单元测试中创建一个Owin测试服务器,并使用它对您的API执行HTTP请求。

代码语言:javascript
复制
    [TestMethod]
    public async Task ApiTest()
    {
        using (var server = TestServer.Create<Startup>())
        {
            var response = await server
                .CreateRequest("/api/action-to-test")
                .AddHeader("Content-type", "application/json")
                .AddHeader("Authorization", "Bearer <insert token here>")
                .GetAsync();

            // Do what you want to with the response from the api. 
            // You can assert status code for example.

        }
    }

然而,你必须使用依赖注入来注入你的mock/stub。您必须在Tests项目的启动类中配置依赖项注入。

Here's,这篇文章更详细地解释了Owin测试服务器和启动类。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24674088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档