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

如何为@Inject(DOCUMENT) 文档创建单元测试:Angular 中的文档

如何解决如何为@Inject(DOCUMENT) 文档创建单元测试:Angular 中的文档

我正在尝试为代码中的重定向创建测试:

import {DOCUMENT,Location} from '@angular/common';
....
export class BankSlipConfirmationComponent {

constructor(...
          @Inject(DOCUMENT) private readonly document: Document) {
}

...

cancel() {
    this.document.location.href = `${environment.urlMenu}`;
}

但我找不到如何在测试文件中注入文档,例如:

...
beforeEach(async(() => {
Testbed.configureTestingModule({
  imports: [
    LinkIconeBradescoModule,RouterTestingModule,ModalMobileBradescoModule
  ],declarations: [BankSlipConfirmationComponent,ConfirmationModalComponent],providers: [{provider: DOCUMENT,useValue: document},BankSlipInclusionService]
}).compileComponents();
}));

beforeEach(() => {
  fixture = Testbed.createComponent(BankSlipConfirmationComponent);
  router = Testbed.get(Router);
  service = Testbed.get(BankSlipInclusionService);
  service.change(getValidateBankSlipInclusion());
  component = fixture.componentInstance;
  fixture.detectChanges();
});
it('Test when user click in cancel button',() => {
    component.cancel();
});

当我运行测试时,我收到了这条消息:

控制台错误

node_modules/jest-environment-jsdom-fifteen/node_modules/jsdom/lib/jsdom/virtual-console.js:29

Error: Not implemented: navigation (except hash changes)
    at module.exports (C:\Desenvolvimento\Quero-Receber-PDPJ\pdpj-fed-account-receivables\node_modules\jest-environment-jsdom-fifteen\node_modules\jsdom\lib\jsdom\browser\not-implemented.js:9:17)
    at navigateFetch (C:\Desenvolvimento\Quero-Receber-PDPJ\pdpj-fed-account-receivables\node_modules\jest-environment-jsdom-fifteen\node_modules\jsdom\lib\jsdom\living\window\navigation.js:77:3)
    at exports.navigate (C:\Desenvolvimento\Quero-Receber-PDPJ\pdpj-fed-account-receivables\node_modules\jest-environment-jsdom-fifteen\node_modules\jsdom\lib\jsdom\living\window\navigation.js:55:3)
    at LocationImpl._locationObjectNavigate (C:\Desenvolvimento\Quero-Receber-PDPJ\pdpj-fed-account-receivables\node_modules\jest-environment-jsdom-fifteen\node_modules\jsdom\lib\jsdom\living\window\Location-impl.js:29:5)
    at LocationImpl._locationObjectSetterNavigate (C:\Desenvolvimento\Quero-Receber-PDPJ\pdpj-fed-account-receivables\node_modules\jest-environment-jsdom-fifteen\node_modules\jsdom\lib\jsdom\living\window\Location-impl.js:23:17)
    at LocationImpl.set href [as href] (C:\Desenvolvimento\Quero-Receber-PDPJ\pdpj-fed-account-receivables\node_modules\jest-environment-jsdom-fifteen\node_modules\jsdom\lib\jsdom\living\window\Location-impl.js:45:10)
    at Location.set href [as href] (C:\Desenvolvimento\Quero-Receber-PDPJ\pdpj-fed-account-receivables\node_modules\jest-environment-jsdom-fifteen\node_modules\jsdom\lib\jsdom\living\generated\Location.js:135:29)
    at BankSlipConfirmationComponent.cancel (C:\Desenvolvimento\Quero-Receber-PDPJ\pdpj-fed-account-receivables\src\app\bank-slip-confirmation\bank-slip-confirmation.component.ts:568:33)
    at C:\Desenvolvimento\Quero-Receber-PDPJ\pdpj-fed-account-receivables\test\bank-slip-confirmation.component.spec.ts:51:15
    at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invoke (C:\Desenvolvimento\Quero-Receber-PDPJ\pdpj-fed-account-receivables\node_modules\zone.js\dist\zone.js:391:26) undefined

但是,我不明白这是什么问题...

你能帮我吗?

谢谢!

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