#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);
});
Смотрите также
- Документы по тестированию Angular для многих более полных примеров.
Комментарии:
1. Почему мы используем TestBed?
2. Для настройки модуля для среды тестирования.