我对角度js进行了茉莉花测试,我得到了下一个错误:
PhantomJS 2.1.1(Linux 0.0.0)test_servicioCalculadora应该提供 版本失败 /home/ivan/workspace/mobile.trackphone/www/lib/ionic/js/ionic.bundle.js:13218:53 forEach@/home/ivan/workspace/mobile.trackphone/www/lib/ionic/js/ionic.bundle.js:9168:24 loadModules@/home/ivan/workspace/mobile.trackphone/www/lib/ionic/js/ionic.bundle.js:13178:12 createInjector@/home/ivan/workspace/mobile.trackphone/www/lib/ionic/js/ionic.bundle.js:13104:22 workFn@/home/ivan/workspace/mobile.trackphone/www/lib/angular-mocks/angular-mocks.js:3074:60 加载@ http://localhost:9876/context.js:151:17
我试图改变路线,注入其他服务,但它也没有用 我跑了像
这样的其他案例it("compara un valor con otro", function () {
var pi = 3.1415926,
e = 2.78;
expect(e).toBeLessThan(pi);
expect(pi).not.toBeLessThan(e);
});
这很好。
这是我的测试文件
describe("test_servicioCalculadora", function () {
var calcu;
beforeEach(module('starter'));
it('should provide a version', inject(function(version) {
expect(version).toEqual('v1');
}));
});
我的index.js是
var app = angular.module('starter', ['ionic', 'LocalStorageModule', 'btford.socket-io', 'angularMoment', 'ngCordova', 'ngAudio']);
app.value('version', 'v1');
我的karma.config.js
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['jasmine'],
files: [
'../www/lib/ionic/js/ionic.bundle.js',
'../www/lib/angular-mocks/angular-mocks.js',
'../www/js/index.js',
'../tests/**/*-test.js'
],
exclude: [
],
preprocessors: {
},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_ERROR,
autoWatch: true,
browsers: ['PhantomJS'],
singleRun: false,
concurrency: Infinity
})
};
答案 0 :(得分:0)
您正在尝试注入一个值。应该是服务还是工厂。
例如
beforeEach(module('some.service', function($provide){
var log = {
info: function(data){
console.log(data);
}
}
$provide.value('$log', log);
});
beforeEach(inject(function(_serviceName_){
serviceName = _serviceName_;
}));
it("Actual test", function(){
serviceName.performAction();
});
参见示例,首先是可以设置某些值的模块。然后是测试结束时的服务或工厂。
这意味着当在实际测试中使用 serviceName 时, log 的值将被注入。
希望这有助于澄清。