在Jest测试中使用工作箱

问题描述

我的Vue应用程序具有一个组件,可侦听服务人员以确定该应用程序是否需要更新。我想添加一个简单的测试,以使组件显示应有的状态。但是,我需要服务人员和工作箱正常工作。我让服务人员使用service-worker-mock,但是找不到有关如何合并工作箱的资源。到目前为止,这是我的测试:

import UpdateNotification from '@/components/UpdateNotification.vue';
import { workBox } from 'workBox-sw';
const makeServiceWorkerEnv = require('service-worker-mock');


describe('UpdateNotification',() => {
    beforeEach(() => {
        Object.assign(global,makeServiceWorkerEnv(),workBox);
        jest.resetModules();

    });

    it('displays',async() => {
        require('../../../src/service-worker');
        render(UpdateNotification);
    });
});

这是我的服务人员:

/* eslint-disable no-undef*/
workBox.precaching.precacheAndRoute(self.__precacheManifest);
workBox.routing.registerNavigationRoute(workBox.precaching.getCacheKeyForURL('index.html'));

由于以下原因,到目前为止,我的@R_404_6280@案在测试中无法达到require('../../../src/service-worker');

TypeError: Cannot read property 'precacheAndRoute' of undefined

      1 | /* eslint-disable no-undef*/
    > 2 | workBox.precaching.precacheAndRoute(self.__precacheManifest);

导入{ workBox }只是一种猜测,我认为这就是我要去的地方。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)