각도 2 서비스를 단위 테스트하려고하는데 몇 가지 문제가 있습니다.
내 수업은 다음과 같습니다.
import { Injectable } from '@angular/core';
import {Http} from '@angular/http';
@Injectable()
export class BoardServiceService {
private http:Http;
constructor(http:Http) {
this.http = http;
}
/**
* Load a list of remote boards
* @return {object} The HTTP observable
*/
loadBoards(){
return this.http.get('http://google.com');
}
}
내 테스트는 다음과 같습니다. 첫 번째 테스트를 위해 한 항목의 배열을 가져 오는지 테스트해야합니다.
import {
beforeEachProviders,
it,
describe,
expect,
inject
} from '@angular/core/testing';
import {Http, BaseRequestOptions, Response, ResponseOptions} from '@angular/http';
import {MockBackend} from '@angular/http/testing';
import {provide} from '@angular/core';
import { BoardServiceService } from './board-service.service';
describe('BoardService Service', () => {
beforeEachProviders(() => [
BaseRequestOptions,
MockBackend,
Response,
BoardServiceService,
provide(Http, {
useFactory: (backend, defaultOptions) => new Http(backend, defaultOptions),
deps: [MockBackend, BaseRequestOptions]
})
]);
it('should get me a list of items (array type) on subscribe',
inject([BoardServiceService, MockBackend], (service: BoardServiceService, MockBackend) => {
const resultSet = [{}];
const response = new Response(new ResponseOptions({body:resultSet, status:200}));
MockBackend.connections.subscribe(connection => connection.mockRespond(response));
BoardServiceService.loadBoards().subscribe(res => expect(res.length).toEqual(1));
}));
});
angular cli (ng test)를 사용하여 테스트를 실행하려고하면 다음과 같은 오류가 발생합니다.
Broccoli 플러그인 : [BroccoliTypeScriptCompiler] 실패 : 오류 : Typescript에서 다음 오류를 발견했습니다.
C : /Project/angular2/kanboard/tmp/broccoli_type_script_compiler-input_base_path-NaWokBRS.tmp/0/src/app/service/boardService/board-service .service.spec.ts (35, 27) : 'typeof BoardServiceService'유형에 'loadBoards'속성이 없습니다.
아무도 그것을 작동시키는 방법을 알고 있습니까?
다음을 사용해야한다고 생각합니다.
service.loadBoards().subscribe(res => expect(res.length).toEqual(1));
대신에
BoardServiceService.loadBoards().subscribe(res => expect(res.length).toEqual(1));
클래스 자체가 아닌 주입 된 인스턴스 ...
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다