如何使用模拟数据测试 AngularJS 服务中的功能

How to test function in AngularJS service with mock data

如何为 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;
                }
            }
        }
})();

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

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();
    }); 
});