【问题标题】:Integration testing an asp.net Web Api Project集成测试一个 asp.net Web Api 项目
【发布时间】:2014-07-07 16:24:36
【问题描述】:

我目前正在开发一个使用基于表单的 UI 的项目,该 UI 在后端调用 Rest API。 UI 使用 HTML/JQuery/JavaScript 开发,后端使用 ASP.NET Web API 开发。我们计划编写一个端到端测试来模拟用户操作并验证返回的响应,该响应将采用 json 格式。

问题:

我想知道什么样的框架/技术可以使这种集成测试变得容易(JavaScript-> WebApi)。另外,是否有人做过类似的事情并可以分享他们的经验?

我的研究

在网上做一些研究时,我遇到了以下框架。但是,我没有和他们中的任何一个一起工作过,所以我不知道他们的优缺点。我计划编写简单的测试并评估它们的功能

Jasmin (http://jasmine.github.io/)  (JavaScript based framework)
Cucumber (http://www.specflow.org/) (BDD based framework)

【问题讨论】:

    标签: c# asp.net .net asp.net-web-api integration-testing


    【解决方案1】:

    Chander,当您正在查看端到端测试时,您能否不简单地在 Visual Studio 中进行 CodedUI 测试。我们目前这样做是为了与您类似的架构。它们可以由非编码人员使用向导编写,并且非常简单。更不用说集成到 Microsoft Stack 中,因此测试人员在确定其出错原因方面的体验要好得多。

    【讨论】:

    • 让我试一试!
    【解决方案2】:

    老问题,但我想提一个名为 RestFluencing 的框架,它试图准确解决 API 集成测试。

    Rest.GetFromUrl("https://api.github.com/users/defunkt")
        .WithHeader("User-Agent", "RestFluencing Sample")
        .Response()
        .ReturnsDynamic(c => c.login == "defunkt", "Login did not match")
        .ReturnsDynamic(c => c.id == 2, "ID did not match") 
        .Assert();
    

    此外,如果您有一个类模型,您可以使用 JsonSchema 验证器:

    public class GitHubUser
    {
        public int id { get; set; }
        public string login { get; set; }
    }
    

    验证:

    Rest.GetFromUrl("https://api.github.com/users/defunkt")
        .Response()
        .HasJsonSchema<GitHubUser>(new JSchemaGenerator())
        .Assert();
    

    查看 GitHub 页面:RestFluencing

    免责声明:我是该框架的开发人员。在 C# 中以简单的方式进行完全集成的 api 测试是我一直在寻找的东西,因此有了这个 Fluent 风格的框架。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-15
      • 2014-04-13
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      相关资源
      最近更新 更多