javascript - 如何使用 Jasmine 为 $resource (AngularJS) 定义测试

标签 javascript angularjs unit-testing jasmine angularjs-service

我想为我的 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/

相关文章:

javascript - 循环遍历数组内部时如何获取数组的名称?

javascript - 自定义 JavaScriptConverter 类

javascript - Protractor - 在履行完毕时返回待定的 promise

java - 如何使用 JUnit 和 JMock 测试抽象类的 protected 方法

objective-c - 如何模拟类方法(+)?

javascript - 播放时获取 youtube 视频的当前时间

javascript - 确定集合并删除 Angular 中的一项特定项目

javascript - 如何在 IE 上播放 .wav 文件?

unit-testing - 在 virtualenv 中使用 gaetestbed

javascript - 如何检查变量或属性在 JavaScript 中是否可读?