我想为我的 Angular 应用程序定义测试,但我不知道如何使用,因为这是我第一次编写测试。
但是,在我的应用程序中使用 Jasmine 为 REST 服务定义测试对我来说很重要。那么,我的问题是如何测试 GET 请求。我在 Jasmine 网站上阅读了那里的样本。但只是测试URL是否写对了。
我的目的是检查我是否得到响应数据?那可能吗?同样在 Angular Doc 中写到 $resource 是 $httpBackend 推荐的。这就是为什么我对如何开始定义测试有点困惑。
起初我的服务:
资源服务
:
testApp.factory('ResService', ['$resource', 'baseUrl',
function ($resource, baseUrl) {
return {
group: $resource(baseUrl + '/api/qr_group/:Id', {
Id: '@Id'
}, {})
}
}]);
CrudService
:
...
getAllGroups: function () {
return ResService.group.query();
},
最后,我的 Controller 发出了请求:
测试Ctrl
:
CrudService.getAllGroups().$promise.then(
function (response) { $scope.groups = response; },
function (error) { errMessage(error); }
);
有人有想法吗?这会很有帮助:)
最佳答案
@downvoter 的更新:
我引用他的问题:“我的目的是检查我是否得到响应数据?这可能吗?”使用 Angular 单元测试框架测试后端是否正确?
我原来的回答:
您正在尝试测试您的 REST API 而不是前端部分( Angular 应用程序)。
这个测试必须在后端部分进行,Angular 中的服务假设它收到了一个好的答案,这就是为什么有 $httpBackend,将您的服务逻辑与 REST API 隔离。
关于javascript - 如何使用 Jasmine 为 $resource (AngularJS) 定义测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32548886/