AngularJS 应该测试什么

AngularJS what should be tested

所以我和我的团队正在创建一个 Web 应用程序,我们正在这样做:

那么我真正应该测试什么?

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

控制器方法示例:

UnidadesOrganicasService.getUnidadesOrganicas().then(function (unidadesOrganicas) {
                $scope.unidadesOrganicas = unidadesOrganicas;
            }, function errorCallback() {
                $scope.showToastError('Occorreu um erro a carregar as unidades orgânicas!');
            });

其他方法与一些 if 基本相同,这取决于来自 API.

的数据

服务方式:

this.getUnidadesOrganicas = function () {
        return Restangular.all("unidades-organicas").getList({"sort": "acronimo"});
    };

所以测试应该是这样的:

我知道 UI 上的 E2E 测试非常重要,但在这种情况下,是否值得为这种方法进行单元测试?或者我应该只测试真正重要的方法,比如微积分方法之类的方法?

另一方面,在 API 中,大多数功能似乎与集成测试无关,而单元测试似乎更为重要。

我真正的问题是我的想法是否正确以及在这种情况下要测试什么的方向。

编辑 1:

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

它始终取决于项目的预算和复杂性。首先,您自己对该项目的体验可以告诉您哪些地方可以便宜,哪些地方缺乏测试覆盖会花钱,让您抓狂。

感谢 Angular 使控制器单元测试成为现实,机器人大多数时候我会跳过它并留给 e2e,如果您保持控制器薄,则尤其如此。

如果您对后端测试真的很有信心,您可以跳过 $httpBackend 并在服务设计允许的情况下在承诺链上更上一层楼,这是不受欢迎但可行的方案。