我们使用角度种子项目设置角度项目,并使用茉莉花测试框架进行测试。
然而,我感到困惑和惊讶,因为很多茉莉花文档与期望/匹配逻辑和间谍无关。
对于期望,我期待能够使用茉莉花文档中的内容,如:
expect(...).toBeTruthy()
expect(...).toBeFalsy()
// etc...
这些都不起作用,而是看起来我必须编写chai类型的代码:
expect(...).to.be.true;
expect(...).to.be.false;
// etc...
并且间谍能够写下这样的期望:
spyOn(foo, 'setBar');
// ...do some stuff
expect(foo.setBar).toHaveBeenCalled();
foo.setBar.calls.reset();
但我必须写:
expect(foo.setBar.calls.length).to.equal(1);
// reset calls (this is particularly ugly)
foo.setBar.calls = [];
foo.setBar.argsForCall = [];
所以有两个问题:
让see项目使用一个使用Jasmine 2.0 vs 1.3的karma-jasmine插件会很高兴。
感谢。
更新
我应该注意另外两件事。我们运行的是使用grunt和karma-jasmine的测试,如:
grunt test:unit
我们的karma.conf.js文件如下:
module.exports = function(config){
config.set({
basePath : '../',
files : [
'app/lib/angular/angular.js',
'app/lib/angular/angular-*.js',
'test/lib/angular/angular-mocks.js',
'app/js/**/*.js',
'test/unit/**/*.js'
],
exclude : [
'app/lib/angular/angular-loader.js',
'app/lib/angular/*.min.js',
'app/lib/angular/angular-scenario.js'
],
autoWatch : true,
frameworks: ['jasmine'],
browsers : ['Chrome'],
plugins : [
'karma-junit-reporter',
'karma-chrome-launcher',
'karma-firefox-launcher',
'karma-jasmine'
],
junitReporter : {
outputFile: 'test_out/unit.xml',
suite: 'unit'
}
})}
我认为框架:['jasmine']会让我们使用茉莉花,而框架:['mocha','chai']会让我们使用chai。