如何解决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 举报,一经查实,本站将立刻删除。