модульный тест для собственного элемента события click (тег привязки) - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть простой тег привязки с некоторым URL.Цель теста - щелкнуть ссылку, которая должна быть открыта в новой вкладке, а затем сравнить заданный URL-адрес с URL-адресом новой открытой вкладки.

Я пробовал использовать spyOn с оконным объектом.Но у меня ничего не получилось.

Вот что я пробовал.

<a href="https://www.google.com/" target="_blank">google</a>


import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AppComponent } from './app.component';

describe('guideline link', () => {
    let comp: AppComponent;
    let fixture: ComponentFixture<AppComponent>;

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

        fixture = TestBed.createComponent(AppComponent);

        comp = fixture.componentInstance;
    });

    it('link should be opened in separate tab', async () => {
        fixture.detectChanges();
        spyOn(window, 'open');
        const link = fixture.debugElement.nativeElement.querySelector('a');
        fixture.whenStable().then(() => {
            expect(link).toHaveBeenCalled();
            expect(window.open).toHaveBeenCalledWith('https://www.google.com/');
        });

    });

});

1 Ответ

0 голосов
/ 19 июня 2019

Столкнулся с подобной проблемой.Это сработало для меня:

  const link = fixture.debugElement.nativeElement.querySelector("a");
  link.click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...