2016-09-13 180 views
0

Im新的整体TTD与业力和茉莉,我试图运行测试我的服务,从我的数据库拉数据,但我不断收到错误说ReferenceError:找不到变量:beforeEachProviders在karma-test-shim.js这里是我的测试如下..Angular2 rc.6 Karma测试

import { TracksServices } from './tracks.services.ts'; 

describe('Service: TracksServices',() => { 

let service; 
//setup 
beforeEach(() => TestBed.configureTestingModule({ 
    imports: [ TracksModule, HttpModule ], 
    providers: [ 
     TracksServices 
    ], 
})); 

it('get 4 featured images', done => { 

    service.featured(1, 4).subscribe(x => { 

     expect(x).toContain(track); 
     expect(x.length).toEqual(4); 
     done(); 

    }); 

}); 

}); 

回答

1

在RC6 littel位chaged测试API。

例如angular2-webpack-starter的变化。

import { inject, TestBed } from '@angular/core/testing'; 

// Load the implementations that should be tested 
import { App } from './app.component'; 
import { AppState } from './app.service'; 

describe('App',() => { 
    // provide our implementations or mocks to the dependency injector 
    beforeEach(() => TestBed.configureTestingModule({ 
    providers: [ 
     AppState, 
     App 
    ] 
    })); 

    it('should have a url', inject([ App ], (app: App) => { 
    expect(app.url).toEqual('https://twitter.com/AngularClass'); 
    })); 

}); 

beforeEachProvider被删除,现在用TestBed.configureTestingModule() 其中u应设置提供:[]

+0

感谢您的答复,成功地实现你的代码,但现在我似乎得到这个错误PhantomJS 2.1 .1(Mac OS X 0.0.0)服务:跟踪服务应该获取客户详细信息失败 \t TypeError:undefined不是构造函数(靠近'.... map(function(res){re ...')你有任何想法,新的单元测试。谢谢 – user3355603

+0

我更新了我的答案,现在解决了这个问题。你是一个很大的帮助,你知道任何angular2单元测试教程是达到达te..thanks – user3355603