首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS应该测试什么

AngularJS应该测试什么
EN

Stack Overflow用户
提问于 2015-04-08 16:52:17
回答 1查看 310关注 0票数 1

因此,我和我的团队正在创建一个web应用程序,我们正在这样做:

  • 其中之一负责API:。
    • api将为UI提供服务,为其提供数据,并有可能提供UI想要的字段、排序和所有内容,基本上它过滤了所有数据,这样UI就不必这样做了。

  • 另一个负责UI的人是:
    • UI将使用API并显示数据。

  • 我正在做测试,但是我在代码之后进行测试。我测试API (phpunit -单元测试和集成测试)和UI (jasmine测试和量角器- e2e测试)。

那么我到底应该测试什么呢?

angularJS上的大多数控制器函数都是获取数据并将其分配给$scope,那么这些函数是否值得进行单元测试?

控制器方法示例:

代码语言:javascript
复制
UnidadesOrganicasService.getUnidadesOrganicas().then(function (unidadesOrganicas) {
                $scope.unidadesOrganicas = unidadesOrganicas;
            }, function errorCallback() {
                $scope.showToastError('Occorreu um erro a carregar as unidades orgânicas!');
            });

其他方法与依赖于来自API的数据的if的方法基本相同。

服务方法:

代码语言:javascript
复制
this.getUnidadesOrganicas = function () {
        return Restangular.all("unidades-organicas").getList({"sort": "acronimo"});
    };

所以测试会是这样的:

  • 使用$httpBackend模拟数据
  • 对作用域的检查具有正确的模拟数据,但这将导致类似于这样的结果:expect($scope.something).toEqual(MockedSomething);和http模拟只是以下内容:$httpBackend.expectGET('/something').respond(MockedSomething);

我知道UI上的E2E测试非常重要,但在这种情况下,对于这种方法,单元测试值得吗?或者我应该测试那些真正重要的方法,比如微积分方法和类似的方法?

另一方面,在API中,大多数特性似乎与进行集成测试无关,而单元测试似乎更重要。

我真正的问题是,在这种情况下,我是否有正确的想法和一些关于测试什么的方向。

编辑1:

另一个问题:在我的情况下(我在代码之后进行测试,而不是测试驱动的开发),我应该只在控制器完成后(做它应该做的事情,但可以稍微重构一下)进行测试,对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-08 19:21:39

它始终取决于项目的预算和复杂性。首先,这是你自己的项目经验,可以告诉你,你可以从哪里可以便宜,哪里缺乏测试覆盖将花费金钱,并使你撕扯你的头发。

为了使控制器单元测试成为现实,bot大多数时候我会跳过它,并将它留给e2e,如果您保持控制器很细的话,这一点尤其正确。

如果您对后端测试非常有信心,您可以跳过$httpBackend,如果服务设计允许的话,您可以在承诺链上获得更高的一步,这是不可取的,但可行的场景。

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

https://stackoverflow.com/questions/29520740

复制
相关文章

相似问题

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