2016-05-12 3 views
1

Я пытаюсь выполнить проверку на угловое обслуживание 2, и у меня возникли некоторые проблемы.Угловые 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)); 
    })); 
}); 

Когда я пытаюсь запустить мой тест с использованием углового Cli (нг теста), у меня есть следующие ошибки:

The Broccoli Plugin: [BroccoliTypeScriptCompiler] failed with: Error: Typescript found the following errors:
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): Property 'loadBoards' does not exist on type 'typeof BoardServiceService'.

Кто-нибудь знает, как заставить его работать?

ответ

3

Я думаю, что вы должны использовать следующее:

service.loadBoards().subscribe(res => expect(res.length).toEqual(1)); 

вместо

BoardServiceService.loadBoards().subscribe(res => expect(res.length).toEqual(1)); 

Вводимый экземпляра не сам класс ...

Смежные вопросы