我有一些URL的简单锚标记。测试的目的是当单击链接时,应在新选项卡中将其打开,然后将给定的URL与打开的新选项卡的URL进行比较。
我尝试将spyOn与window对象一起使用。但是我没有成功。
这是我尝试过的。
<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/');
});
});
});
答案 0 :(得分:0)
面临类似问题。 这对我有用:
const link = fixture.debugElement.nativeElement.querySelector("a");
link.click();