伊斯坦布尔+ Jasmine + Requirejs错误报道

时间:2015-02-19 17:32:26

标签: javascript unit-testing jasmine istanbul grunt-contrib-jasmine

我的报道报告存在一个小问题。 我已经使用jasmine测试了功能,但覆盖率报告告诉我这些功能没有被覆盖。

我使用带有requirejs的jasminejs来测试我使用requirejs(带有主干)的代码。要使用grunt-contrib-jasmine运行specs gunt,使用grunt-template-jasmine-istanbul和grunt-template-jasmine-requirejs。 测试运行完全正常,如果我将一个日志放入未覆盖的函数,我可以看到这些函数被多次调用。

我的设置是否错误或为什么不包括increaseOffset?

这是我的咕噜声配置

jasmine: {
    coverage: {
        src: [
            'js/collection/*.js',
            'js/model/*.js',
            'js/util/*.js',
            'js/view/**/*.js'
        ],
        options: {
            specs: ['spec/**/*Test.js'],
            summary: true,
            template: require('grunt-template-jasmine-istanbul'),
            templateOptions: {
                coverage: 'test/coverage.json',
                report: {
                    type: 'html',
                    options: {
                        dir: 'test/coverage'
                    }
                },
                thresholds: {
                    lines: 50,
                    statements: 75,
                    branches: 75,
                    functions: 90
                },
                template: require('grunt-template-jasmine-requirejs'),
                templateOptions: {
                    requireConfigFile: 'js/configuration.js',
                    requireConfig: {
                        waitSeconds: 10
                    }
                }
            },
            junit: {
                path: 'test/junit'
            }
        }
    }
}

这是一个示例类

define([
        'jquery',
        'underscore',
        'backbone'
    ], function Filter_load($, _, Backone) {

        'use strict';

        /**
         * Representation of Filter settings
         */
        var Filter = Backone.Model.extend({

            /**
             * Define default values
             */
            defaults: {
                tags: [],
                range: 0,
                offset: 0,
                limit: 10
            },

            /**
             * Increase filter offset by filter limit
             */
            increaseOffset: function Filter_increaseOffset() {
                this.attributes.offset += this.attributes.limit;
            }
        });

        return Filter;
    });

这是本课程测试的一部分

define([
    'model/Filter'
], function FilterTest_load(Filter) {

    /**
     * Validate the model/Filter class
     */
    return describe('A Filter', function() {

        /**
         * Validate behavior of offset property
         */
        describe('offset', function() {
            var filter = new Filter();
            it('should be 0', function() {
                expect(filter.get('offset')).toBe(0);
            });
            it('and change to 100', function() {
                filter.set('offset', 100);
                expect(filter.get('offset')).toBe(100);
            });
            it('should increase by 11', function() {
                filter.set('limit', 11);
                filter.set('offset', 0);
                expect(filter.get('offset')).toBe(0);
                filter.increaseOffset();
                expect(filter.get('offset')).toBe(11);
            });
            it('should increase stay on 10', function() {
                filter.set('limit', 0);
                filter.set('offset', 10);
                expect(filter.get('offset')).toBe(10);
                filter.increaseOffset();
                expect(filter.get('offset')).toBe(10);
            });
        });
    });
});

提前感谢

0 个答案:

没有答案