Что такое тестовый стенд в Jasmine

#angular #jasmine #karma-jasmine #angular2-testing

#angular #jasmine #карма-жасмин #angular2-тестирование

Вопрос:

Я новичок в Jasmine с Angular 2, я часто работаю с объектом TestBed при написании Testcase и получаю ошибку: Please call "TestBed.compileComponents" before your test.

Как мне решить эту ошибку?

 @Component({
  moduleId:module.id,
    selector: 'my-app',
    templateUrl: 'app-component.html',

})
  

Комментарии:

1. Вы пытались позвонить TestBed.compileComponents() ? TestBed это макет среды для запуска тестов компонентов Angular2 без браузера.

2. Да, но теперь он говорит об ошибке: не удается создать компонент AppComponent, поскольку он не был импортирован в модуль тестирования!

3. Вы проверяли angular.io/docs/ts/latest/guide/testing.html

Ответ №1:

Пожалуйста, позвоните в «TestBed.compileComponents» перед тестированием

Этот вызов требуется при тестировании компонентов с использованием templateUrl

Ошибка: не удается создать компонент AppComponent, поскольку он не был импортирован в модуль тестирования!

Вам необходимо настроить TestBed перед каждым тестом, добавив любые компоненты, модули и службы, необходимые для теста. Это похоже на настройку обычного @NgModule с нуля, но вы просто добавляете то, что вам нужно.

 import { async, TestBed } from '@angular/core/testing';

beforeEach(async(() => {
  TestBed.configureTestingModule({
    declarations: [ AppComponent ],
    providers: [],
    imports: []
  })
  .compileComponents();
}));

it('...', () => {
  let fixture = TestBed.createComponent(AppComponent);
});
  

Смотрите также

Комментарии:

1. Почему мы используем TestBed?

2. Для настройки модуля для среды тестирования.