Могу ли я использовать «это» в модульных тестах Angular 6? - PullRequest
0 голосов
/ 04 октября 2018

Я недавно перешел с 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

Могу ли я больше не использовать «это» в своих тестах?Все ли должно быть переменной, объявленной внутри основного описания?

...