Модульное тестирование Угловой Жасмин Карма - PullRequest
0 голосов
/ 15 ноября 2018

Я изучаю юнит-тестирование, и у меня

   @Input() showSearchTab: Boolean = false;
     @Input() currentTab: string = null;

     ngOnInit(): void {
        if (this.showSearchTab) {
          this.currentTab = 'search';
        }
      }

Это юнит-тест:

describe('ngOnInit()', () => { 
        it('should set all the defaults', () => {
          specManager.component.ngOnInit();
          expect(specManager.component.currentTab).toBe('search');
        });
    });

Я получаю ожидаемую ошибку, равную 'search'

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

После проверки вашего компонента, в тот момент, когда тест достигает ожидаемого значения, для showSearchTab устанавливается значение false, поэтому оно не соответствует условию if. Чтобы иметь полностью протестированный сценарий, вы должны сделать:

describe('ngOnInit()', () => {
    describe('and showSearchTab is set to false', () => {
        it('should set all the defaults', () => {
            specManager.component.showSearchTab = false;
            specManager.component.ngOnInit();
            expect(specManager.component.currentTab).toBeNull();
        });
    });

    describe('and showSearchTab is set to true', () => {
        it('should set all the defaults', () => {
            specManager.component.showSearchTab = true;
            specManager.component.ngOnInit();
            expect(specManager.component.currentTab).toEqual('search');
        });
    });
});
0 голосов
/ 15 ноября 2018

Согласно вашей логике в ngOnInit функция currentTab будет иметь значение search, если showSearchTab равно true.

Таким образом, перед вызовом specManager.component.ngOnInit() в вашем тестовом случае установите specManager.component.currentTab = true;

...