2017-01-30 2 views
0

Я пытаюсь настроить некоторые модульные тесты в моем приложении Angular 2/AngularCLI. Хотя приложение работает так, как ожидалось, тестирование показывает сбои.Компонентные тесты не тестируются Только компонент в моем приложении Angular 2?

Итак, для начала просто (или так я думал), я установил тестовый компонент, который я создал из командной строки (ng g c testr). Это создает базовый компонентный тест вместе с файлами компонентов. Когда я записываю CD в этот компонент, а затем запускаю этот встроенный тест с помощью «ng test», я получаю ошибки, связанные с другими компонентами в моем приложении. Это меня сбивает с толку, потому что я думал, что тесты отдельных компонентов были модульными тестами, поэтому они предназначены только для проверки этого конкретного компонента. Это пример теста для компонента:

/* tslint:disable:no-unused-variable */ 
import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 
import { By } from '@angular/platform-browser'; 
import { DebugElement } from '@angular/core'; 

import { TestrComponent } from './testr.component'; 

describe('TestrComponent',() => { 
    let component: TestrComponent; 
    let fixture: ComponentFixture<TestrComponent>; 

    beforeEach(async(() => { 
    TestBed.configureTestingModule({ 
     declarations: [ TestrComponent ] 
    }) 
    .compileComponents(); 
    })); 

    beforeEach(() => { 
    fixture = TestBed.createComponent(TestrComponent); 
    component = fixture.componentInstance; 
    fixture.detectChanges(); 
    }); 

    it('should create',() => { 
    expect(component).toBeTruthy(); 
    }); 
}); 

Я предполагаю, что это должно работать «из коробки» - потому, что он настроен автоматически AngularCLI. Так почему же неудача? Я что-то упустил? Разве тестовый код здесь не предназначен для тестирования внутреннего компонента, а не его связи с другими компонентами приложения?

Вот пример одной из ошибок, которые я получаю. Ясно, что это для другого компонента целиком. И я получаю многочисленные ошибки, подобные этому для различных компонентов, только от запуска этого теста.

ERROR in ./src/app/app.component.ts 
Module not found: Error: Can't resolve 'app/app.component.html' in '/Users/mko/Documents/abc-cli/abc-cli/cli-abc/src/app' 
@ ./src/app/app.component.ts 77:22-55 
@ ./src/app/app.component.spec.ts 
@ ./src \.spec\.ts 
@ ./src/test.ts 

Вот еще одна ошибка снова, относящиеся к другому компоненту:

ERROR in ./src/app/views/client/client-panel.component.ts 
Module not found: Error: Can't resolve 'app/views/client/client-panel.component.html' in '/Users/mko/Documents/abc-cli/abc-cli/cli-abc/src/app/views/client' 
@ ./src/app/views/client/client-panel.component.ts 34:22-88 
@ ./src/app/views/client/client-panel.component.spec.ts 
@ ./src \.spec\.ts 
@ ./src/test.ts 

Если я кд в компонент и запустить «нг тест», делает или что не работает только модульный тест для этого компонента ? И, если нет, что мне нужно изменить, чтобы это просто запускало проверку отдельных компонентов, а не все из них?

+0

Да, просто добавил его выше. Я получаю сообщения об ошибках для другого компонента кроме этого. Не знаю, почему. – Muirik

+0

Извините, пожалуйста, уточните. Если я подключился к компоненту и запустил «ng test», выполняет ли это или не выполняет только модульный тест для этого компонента? И, если нет, что мне нужно изменить, чтобы это просто запускало проверку отдельных компонентов, а не все из них? – Muirik

ответ

0

Итак, я понял проблему. Счётчик того, что я предположил, все готовые тесты отдельных компонентов будут работать вместе, потому что они сгруппированы в блок описания. Таким образом, cd'ing в определенный компонент и запуск «ng test» НЕ запускает именно этот тест. На самом деле это запустит ВСЕ.

Вы можете, однако, запустить отдельный тест компонента, предваряя функцию описания с чем-то, как и с й:

fdescribe ('SomeComponent',() => {...}

Если такая функция существует, и она не будет работать.

Но, что более важно, вынос здесь заключается в том, что «ng test» на самом деле предназначен для запуска целой серии модульных испытаний, а не только одного теста.

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

  • Нет связанных вопросов^_^