因此,我和我的团队正在创建一个web应用程序,我们正在这样做:
那么我到底应该测试什么呢?
angularJS上的大多数控制器函数都是获取数据并将其分配给$scope,那么这些函数是否值得进行单元测试?
控制器方法示例:
UnidadesOrganicasService.getUnidadesOrganicas().then(function (unidadesOrganicas) {
$scope.unidadesOrganicas = unidadesOrganicas;
}, function errorCallback() {
$scope.showToastError('Occorreu um erro a carregar as unidades orgânicas!');
});其他方法与依赖于来自API的数据的if的方法基本相同。
服务方法:
this.getUnidadesOrganicas = function () {
return Restangular.all("unidades-organicas").getList({"sort": "acronimo"});
};所以测试会是这样的:
expect($scope.something).toEqual(MockedSomething);和http模拟只是以下内容:$httpBackend.expectGET('/something').respond(MockedSomething);我知道UI上的E2E测试非常重要,但在这种情况下,对于这种方法,单元测试值得吗?或者我应该测试那些真正重要的方法,比如微积分方法和类似的方法?
另一方面,在API中,大多数特性似乎与进行集成测试无关,而单元测试似乎更重要。
我真正的问题是,在这种情况下,我是否有正确的想法和一些关于测试什么的方向。
编辑1:
另一个问题:在我的情况下(我在代码之后进行测试,而不是测试驱动的开发),我应该只在控制器完成后(做它应该做的事情,但可以稍微重构一下)进行测试,对吗?
发布于 2015-04-08 19:21:39
它始终取决于项目的预算和复杂性。首先,这是你自己的项目经验,可以告诉你,你可以从哪里可以便宜,哪里缺乏测试覆盖将花费金钱,并使你撕扯你的头发。
为了使控制器单元测试成为现实,bot大多数时候我会跳过它,并将它留给e2e,如果您保持控制器很细的话,这一点尤其正确。
如果您对后端测试非常有信心,您可以跳过$httpBackend,如果服务设计允许的话,您可以在承诺链上获得更高的一步,这是不可取的,但可行的场景。
https://stackoverflow.com/questions/29520740
复制相似问题