集成测试asp.net Web Api项目

时间:2014-07-07 16:24:37

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

我目前正在开发一个使用基于表单的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)

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

旧问题,但我想提一个名为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风格的框架。