Я недавно перешел с Angular 5 на Angular 6 и начал использовать cli.Раньше я просто использовал веб-пакет с жасмином и кармой для запуска своих модульных тестов.Обычно я пишу свои модульные тесты следующим образом:
describe('ComponentToTest', () => {
beforeEach(() => {
this.injector = ReflectiveInjector.resolveAndCreate([
{ provide: DALService, useClass: MockDal },
RealService
]);
this.datePipe = new DatePipe('en-US');
this.component2 = this.injector.get(Component2);
this.dal = this.injector.get(DALService);
this.realService = this.injector.get(RealService);
this.componentToTest = new ComponentToTest(
this.datePipe,
this.component2,
this.dal,
this.realService);
// Test Data
this.testData = [1, 2, 3];
});
describe('testFunctionOne', () => {
it('should return true', () => {
expect(this.componentToTest.testFunctionOne()).toEqual(true);
});
});
});
Но при работе с проектом cli, когда я запускаю «ng test», все тесты терпят неудачу, говоря «это» не определено.Например, одна из реальных ошибок:
TypeError: Cannot set property 'injector' of undefined
Могу ли я больше не использовать «это» в своих тестах?Все ли должно быть переменной, объявленной внутри основного описания?