javascript – 使用ng-describe进行端到端测量与量角器

前端之家收集整理的这篇文章主要介绍了javascript – 使用ng-describe进行端到端测量与量角器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近发现了一个令人敬畏的 ng-describe软件包,它使AngularJS应用程序的单元测试非常透明,通过抽取所有必须记住/查找和写入的样板代码来加载,注入,模拟或间谍. @H_301_2@有人试图用量角器来描述吗?这是否有意义,我们可以从中受益吗?

@H_301_2@引起我兴趣的事情之一是您可以轻松地嘲笑HTTP响应:

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();
    });
  }
});
@H_301_2@模拟HTTP响应通常有助于实现更好的e2e覆盖,并测试UI对特定情况的反应以及错误处理如何工作.这是我们正在使用的protractor-http-mock,还有other options看起来不像ng-describe那么简单.

解决方法

量角器主要用于E2E测试(使用硒鼓webdriver),这意味着您需要具有实际的后端连接(也可以是模拟后端).量角器的创始人写了 here,您的应用程序代码与测试代码分开运行,并且无法轻松访问$http服务. @H_301_2@通过嘲笑后端调用,即使您使用的是E2E测试工具(如量角器),您也不会进行E2E测试.为什么不返回单元测试呢.唯一的区别是,您将使用jQuery代替Protractor API,测试将使用Karma运行.然后,您可以轻松地使用ng-describe和$httpBackend,主要用于单元测试.

@H_301_2@但是,如果你想继续这种方法,你可以检查这个Protractor issue的意见.有几个人正在为这个问题提出解决方案,如上所述,你已经在使用其中的一个.但在这种情况下,ng-describe不会帮助你.

@H_301_2@我希望这回答你的问题.

原文链接:/js/151906.html

猜你在找的JavaScript相关文章