首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ng描述进行量角器端到端测试

用ng描述进行量角器端到端测试
EN

Stack Overflow用户
提问于 2015-09-01 04:49:15
回答 1查看 349关注 0票数 10

最近,我发现了一个很棒的ng-describe包,它通过抽象出所有你必须记住/查找和编写的样板代码,从而使为AngularJS应用程序编写单元测试变得非常透明,以便加载、注入、模拟或监视。

有人试图在ng-describe中使用protractor吗?它有意义吗?我们能从中受益吗?

吸引我注意的一件事是,您可以很容易地模拟HTTP响应:

代码语言:javascript
复制
ngDescribe({
  inject: '$http', // for making test calls
  http: {
    get: {
      '/my/url': 42, // status 200, data 42
      '/my/other/url': [202, 42], // status 202, data 42,
      '/my/smart/url': function (method, url, data, headers) {
        return [500, 'something is wrong'];
      } // status 500, data "something is wrong"
    }, 
    post: {
      // same format as GET
    }
  },
  tests: function (deps) {
    it('responds', function (done) {
      deps.$http.get('/my/other/url')
        .then(function (response) {
          // response.status = 202
          // response.data = 42
          done();
        });
      http.flush();
    });
  }
});

模拟HTTP响应通常有助于实现更好的e2e覆盖率,并测试UI如何对特定情况作出反应,以及错误处理是如何工作的。这是我们目前使用protractor-http-mock所做的事情,也有一些其他选择看起来不像使用ng-describe那样容易。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-08 07:53:40

量角器主要用于E2E测试(使用selenium ),这意味着您需要连接一个实际的后端(也可以是一个模拟后端)。当Protractor的创建者编写这里时,您的应用程序代码与测试代码分开运行,因此不可能轻松地访问$http服务。

通过模拟后端调用,您将不再进行E2E测试,即使您正在使用E2E测试工具(如Protractor )。为什么不回到单元测试。唯一的区别是,您将使用jQuery,而不是Protractor,并且测试将与Karma一起运行。然后,您可以很容易地使用主要用于单元测试的ng-describe和$httpBackend。

但是,如果您想继续使用这种方法,您可以检查这个量角器问题中的注释。有几个人正在为这个问题提出解决方案,正如前面提到的,您已经在使用其中的一个了。但在这种情况下,描述对你没有多大帮助。

我希望这能回答你的问题。

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

https://stackoverflow.com/questions/32323742

复制
相关文章

相似问题

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