【发布时间】:2017-01-08 08:43:15
【问题描述】:
您好,我是 angular2 的新手,刚刚完成了英雄示例。我认为添加单元测试会很好,我从 hero.service 开始。
这是英雄服务
getHeroes():承诺{
return this.http.get(this.heroesUrl ).toPromise().then(response=>response.json().data as Hero[]).catch(this.handleError);
}
这是我的单元测试
const fakedHeroes:Hero[]=[
{ id: 1, name: 'Windstorm' },
{ id: 2, name: 'Bombasto' },
{ id: 3, name: 'Magneta' },
{ id: 4, name: 'Tornado' }
]
describe('get Heroes test',()=>{
let service:HeroService=null;
let backend:MockBackend=null;
beforeEach(inject([HeroService,MockBackend],(heroSerivce:HeroService,mockBackend:MockBackend)=>{
service=heroSerivce;
backend=mockBackend;
}));
it('get heroes',(done)=>{
backend.connections.subscribe((connection:MockConnection)=>{
let options=new ResponseOptions({status: 200, body: {data: fakedHeroes}})
connection.mockRespond(new Response(options));
})
service.getHeroes().then(response=>{
// console.log(response)
console.log(response.length)
expect(response.length).toEqual(2,'should be 4')
});
done();
})
})
从控制台,我可以看到响应的长度是 4..但是测试成功..
我错过了什么吗?
更新1:
我都试过了
expect(response.length).toEqual(2,'should be 4')
expect(response.length).toBe(2,'should be 4')
全部顺利通过
【问题讨论】: