2016-01-02 117 views
7

如何写茉莉测试用例,其是具有HTTP依赖下面的类具有构造测试angular2服务

import {Injectable} from 'angular2/core'; 
import {Http, HTTP_PROVIDERS} from 'angular2/http'; 

@Injectable() 
export class MockUserService { 
    items:Array<any>; 

    constructor(http:Http){ 
     http.get('http://127.0.0.1:8080/src/data/names.json') 
     .subscribe(res => { 
      this.items = res; 
      console.log('results found'); 
     }) 
    } 
} 

我在下面的方法试了,

it('Testing user login', inject([MockUserService,Http], (mockUserService:MockUserService) => { 
    let http:Http; 
     let mockUserService: MockUserService = new MockUserService(http); 
    expect(1+1).toEqual(2); 

    }); 
); 

我收到DI错误: DI error Image

回答

1

您可以使用beforeEachProviders到DI容易象下面这样:

beforeEachProviders(() => [ 
    HTTP_PROVIDERS, 
    MockUserService 
]); 

describe('MockUser Service',() => { 
    it('Testing user login', 
    inject([MockUserService], (service: MockUserService) => { 
     expect(1 + 1).toEqual(2); 
    })); 
}); 

我希望这将帮助你(至少6个月前)。