如何使用window.navigator.msSaveBlob测试功能?

时间:2020-03-06 06:42:10

标签: angular karma-jasmine

我必须为window.navigator.msSaveBlob用角度编写一个单元测试。 如何编写具有100个分支覆盖率的单元测试?

msSaveOrOpenBlob() {
    if (window && window.navigator && window.navigator.msSaveBlob)
      return true;
    return false
  }

  msSaveBlob(request: Blob, fileName: string) {
    return navigator.msSaveBlob(request, fileName);
  }

1 个答案:

答案 0 :(得分:1)

您的测试将在Chrome中运行,因此将不会定义msSaveBlob或msSaveOrOpenBlob函数,因为它们仅在IE中可用。

出于测试目的,您可以在导航器对象本身的单个测试中设置它们。例如

window.navigator.msSaveOrOpenBlob = () => true;
window.navigator.msSaveBlob = () => true;

测试完成后,请不要忘记取消设置,以免发生不良的副作用。

window.navigator.msSaveOrOpenBlob = undefined;
window.navigator.msSaveBlob = undefined;