2016-01-02 30 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 का उपयोग कर सकते है:

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

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

मुझे आशा है कि यह आप (कम से कम 6 महीने पहले की) मदद मिलेगी।

संबंधित मुद्दे