相关疑难解决方法(0)

开玩笑:测试window.location.reload

如何编写测试以确保该方法reloadFn确实重新加载了窗口?我找到了这个资源,但不清楚在给定函数中发生窗口重载时编写测试时如何期望窗口重载。谢谢您的帮助!

const reloadFn = () => {
  window.location.reload(true);
}
Run Code Online (Sandbox Code Playgroud)

javascript jestjs

15
推荐指数
4
解决办法
954
查看次数

如何使用 jest 配置 jsdom

我已将 jest 和 jsdom 安装到我的 React 项目中,但在导入使用该变量的 React 组件时遇到问题window.localStorage。我添加了 jsdom 的安装文件,我相信它可以解决问题。

这是我的设置:

package.json 中的笑话配置

"jest": {
    "verbose": true,
    "testEnvironment": "jsdom",
    "testURL": "http://localhost:8080/Dashboard/index.html",
    "transform": {
      "^.+\\.js$": "<rootDir>/node_modules/babel-jest",
      "^.+\\.jsx$": "<rootDir>/node_modules/babel-jest"
    },
    "unmockedModulePathPatterns": [
      "node_modules/react/",
    ],
    "moduleFileExtensions": [
      "js",
      "jsx",
      "json",
      "es6"
    ]
  }
Run Code Online (Sandbox Code Playgroud)

安装程序.js

import jsdom from 'jsdom';

const DEFAULT_HTML = '<html><body></body></html>';

global.document = jsdom.jsdom(DEFAULT_HTML);

global.window = document.defaultView;
global.navigator = window.navigator;
global.localStorage = window.localStorage;
Run Code Online (Sandbox Code Playgroud)

测试.js

'use strict';
import setup from './setup';
import React from 'react';
import jsdom from 'jsdom';
import …
Run Code Online (Sandbox Code Playgroud)

javascript jsdom reactjs jestjs

5
推荐指数
1
解决办法
1万
查看次数

如何为 Jest 模拟导航器 mediaDevices

我有一个需要使用的测试,navigator.mediaDevices但我无法让任何模拟正常工作。

我正在使用create-react-app.

这是我的测试:

import getConnectedDevices from "./getConnectedDevices";

describe("getConnectedDevices", () => {
  it("Should work", () => {
    console.log(navigator);              // Navigator {}
    console.log(navigator.mediaDevices); // undefined
  });
});
Run Code Online (Sandbox Code Playgroud)

我尝试添加一个模拟,因为它在 jest 文档中说明

import getConnectedDevices from "./getConnectedDevices";

describe("getConnectedDevices", () => {
  it("Should work", () => {
    console.log(navigator);              // Navigator {}
    console.log(navigator.mediaDevices); // undefined
  });
});
Run Code Online (Sandbox Code Playgroud)
import "../../tests/navigator.mock"; // <- Mock added

import getConnectedDevices from "./getConnectedDevices";

describe("getConnectedDevices", () => {
  it("Should work", () => {
    console.log(navigator);              // Navigator {}
    console.log(navigator.mediaDevices); // …
Run Code Online (Sandbox Code Playgroud)

unit-testing navigator reactjs jestjs

1
推荐指数
2
解决办法
1381
查看次数

标签 统计

jestjs ×3

javascript ×2

reactjs ×2

jsdom ×1

navigator ×1

unit-testing ×1