微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ngNeat/Spectator,测试脚本是否添加到页面

如何解决ngNeat/Spectator,测试脚本是否添加到页面

我是测试新手,我在我的项目中添加了一些测试,但我有一个组件应该将脚本加载到页面 ONCE


  constructor(
    private renderer: Renderer2,@Inject(DOCUMENT) private document: Document,private applicationRef: ApplicationRef,private translateService: TranslateService
  ) {}

  activateDebugger() {
    if (this.injected) {
      return;
    }

    const window = this.document.defaultview;
    window._debug = [];
    window._debug.push(['project',this.projectName]);
    const script = this.renderer.createElement('script');
    script.src = 'url//..//..//..';
    this.renderer.appendChild(this.document.head,script);
    this.injected = true;

    this.applicationRef.tick();
  }

现在,我想为这个组件添加一个测试,以检查脚本是否正确添加页面中。我现在没有嘲笑任何服务,但它应该仍然有效:

describe('DebuggerComponent',() => {
  let spectator: spectator<DebuggerComponent>;
  const createComponent = createComponentFactory({
    component: DebuggerComponent,providers: [Renderer2],imports: [AngularsvgIconModule.forRoot(),HttpClientModule],componentMocks: [TranslateService,ApplicationRef,Document],});

  beforeEach(() => (spectator = createComponent()));

  test('Should load the script',async () => {
    spectator.component.activateTranslationMode();
    spectator.detectChanges();
    const scripts = Array.from(document.body.querySelectorAll('script'));
    const hasScript = scripts.find((s) => s.src === 'url//..//..//..');
    expect(hasScript).not.toBeNull();
  });

  it('Should match snapshot',() => {
    expect(spectator.fixture).toMatchSnapshot();
  });
});

问题是我不能(无法使这个测试工作,而且我找不到任何有帮助的资源

此刻上面返回

测试完成后无法登录。您是否忘记在测试中等待一些异步内容

但我尝试添加 async 并且没有更改

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。