【问题标题】:How to test function in AngularJS service with mock data如何使用模拟数据测试 AngularJS 服务中的功能
【发布时间】:2015-07-01 03:17:18
【问题描述】:

如何在 AngularJS 服务提供者中为一项功能创建 Jasmine 单元测试。我想为 myObject 创建模拟数据并使用该模拟数据作为参数测试函数 getObjectShape()。如何做到这一点?

    (function () {
    'use strict';
    angular.module('objectShapes')
            .provider('shapesResolver', shapesResolver);

        function shapesResolver() {

            this.$get = function () {
                return resolver;
            };

            function resolver(myObject) {

                var service = {
                    getObjectShape: getObjectShape
                };

                function getObjectShape() {
                    return myObject.Shape;
                }
            }
        }
})();

【问题讨论】:

  • 我在这里看不到任何依赖关系,我不明白您在谈论哪些模拟数据,并且您的 resolver() 函数除了声明一个变量并且什么都不做之外什么都不做。所以我有点困惑。另外,您忘记发布您尝试过的内容。
  • 我说我需要为 myObject 创建模拟数据,这是函数解析器的参数。好的,这是我的错误,它没有依赖关系。我需要函数解析器的简单单元测试结构。

标签: angularjs unit-testing jasmine angularjs-service


【解决方案1】:

这是您的服务的测试框架。

describe('shapesResolver service', function() {
    var shapesResolver;

    beforeEach(module('objectShapes'));
    beforeEach(inject(function(_shapesResolver_) {
        shapesResolver = _shapesResolver_;
    }));

    it('should do something, but what?', function() {
        var mockMyObject = {};

        shapesResolver(mockMyObject);

        // shapesResolver doesn't return anything, and doesn't 
        // have any side effect, so there's nothing to test.

        expect(true).toBeTruthy();
    }); 
});

【讨论】:

    猜你喜欢
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    • 2022-10-25
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 2013-04-07
    相关资源
    最近更新 更多