2016-02-23 2 views
3

Я следовал модульное тестирование с этого сайта (автор: Torgeir Helgevold) @: TGH http://www.syntaxsuccess.com/viewarticle/angular-2.0-unit-testing сделать модульное тестирование, но получил сообщение об ошибке:Угловое 2 + жасмин Test Unit - Получение TS2345 ошибки

«Ошибка: (15 , 39) TS2345: Аргумент типа 'FunctionWithParamTokens' не присваивается параметру типа '(done:() => void) => void'. "

it('should define full name2', inject([DisplayName], (displayName) => { 
      displayName.firstName = 'Joe'; 
      displayName.lastName = 'Smith'; 
      displayName.generateFullName(); 
      expect(displayName.fullName).toBe('Joe Smith'); 
     })); 

Является ли код на этом сайте устаревшим? Может ли кто-нибудь дать мне ссылку на изучение модульного тестирования с помощью Anuglar2 + Jasmine?

ответ

16

Я тоже столкнулся с этой ошибкой. Проблема заключалась в том, что я не импортировал beforeEach из angular2/testing.

import {it, describe, expect, inject, beforeEach} from 'angular2/testing'; 

describe('Thing',() => { 
    let thing: Thing; 

    beforeEach(inject([Thing], (t: Thing) => { 
    thing = t; 
    })); 

    it('should do something',() => { 
    expect(thing.doSomething()).toBe('I did a thing'); 
    }); 
}); 
+0

Именно это и было причиной моей проблемы (ну, кроме оригинальной копии и вставки из другого UT!). Спасибо за публикацию. – Aidan

+1

Для записи в вашем заявлении на импорт исправлена ​​проблема, но это не 'beforeEach', который нужно импортировать (что не имеет никакого смысла), это' it' - вам нужно использовать исправленную функцию 'it' от Angular а не Жасмин, что вы используете, если вы не импортируете его из «angular2/testing» ' – drewmoore

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