我的覆盖率报告有一个小问题。我已经用茉莉花测试了功能,但覆盖率报告告诉我这些功能没有被覆盖。
我正在使用 jasminejs 和 requirejs 来测试我的代码,它也使用了 requirejs(带骨干)。要使用 grunt-contrib-jasmine 运行规范 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);
});
});
});
});
预先感谢