GVKun编程网logo

javascript-jQuery不适用于jsdom / enzyme

14

如果您想了解javascript-jQuery不适用于jsdom/enzyme的相关知识,那么本文是一篇不可错过的文章,我们将为您提供关于Enzyme2.6.0发布,JavaScript测试工具、En

如果您想了解javascript-jQuery不适用于jsdom / enzyme的相关知识,那么本文是一篇不可错过的文章,我们将为您提供关于Enzyme 2.6.0 发布,JavaScript 测试工具、Enzyme 3.1.0 发布,JavaScript 测试工具、Enzyme —— 用于 React 的 JavaScript 测试工具、Enzyme:用于 React 的 JavaScript 测试工具的有价值的信息。

本文目录一览:

javascript-jQuery不适用于jsdom / enzyme

javascript-jQuery不适用于jsdom / enzyme

我有一个包含以下组件的最低测试React应用:

import React from 'react';
import $from 'jquery';

export default class App extends React.Component {
    componentDidMount() {
        console.log('componentDidMount', $('#helloDiv').length);
    }

    render() {
        return <div id='helloDiv'>
            Hello React!
                </div>;
    }
}

在浏览器(Chrome)中加载该文件时效果很好. componentDidMount()中的console.log()打印出找到的1个helloDiv元素

但是,如果我使用摩卡酶jsdom进行测试,则App组件中相同的console.log()会输出0:

import React from 'react';
import { mount } from 'enzyme';
import { expect } from 'chai';
import App from '../src/client/app/first'

describe('first test', () => {
    it('should pass', () => {        
        const app = mount(<App />);
        expect(app.find('#helloDiv').length).to.eq(1);
    });
});

注意:此单元测试没有问题,正在通过.真正的问题是何时<应用/>使用酶挂载,调用componentDidMount(),但其中的console.log()语句打印出0,而不是1

这是我运行摩卡的方法:

mocha --require enzyme/withDom --compilers js:babel-core/register test/index.test.js

知道为什么jquery选择器在测试中找不到任何内容吗?这不应该是摩卡咖啡的问题,因为如果我开玩笑地会发生相同的问题

解决方法:

终于找到了问题:

默认情况下,酶挂载(< SomeComponent />)会执行完整的DOM呈现,但不会将呈现的组件插入当前文档(JSm).这就是为什么jQuery在当前文档中找不到任何元素的原因

要进行完整的DOM渲染并附加到当前文档:

mount(<SomeComponent />, { attachTo: document.getElementById('app') });

设置jsdom时,应用为空div可用:

global.document = jsdom('<html><head></head><body><div id="app" /></body></html>');

Enzyme 2.6.0 发布,JavaScript 测试工具

Enzyme 2.6.0 发布,JavaScript 测试工具

Enzyme 2.6.0 发布了,Enzyme 来自 airbnb 公司,是一个用于 React 的 JavaScript 测试工具,方便你判断、操纵和历遍 React Components 输出。Enzyme 的 API 通过模仿 jQuery 的 API ,使得 DOM 操作和历遍很灵活、直观。Enzyme 兼容所有的主要测试运行器和判断库,文档和例子使用 mocha 和 chai。

更新内容:

新的东西

  • 确保 ShallowWrapper 的渲染输出不能得到 stale (#490)

修复

  • 使用 shim 检测构造函数名称 (#659)

  • mount/shallow: fix ID 选择器 (#670)

下载地址:

  • Source code (zip)

  • Source code (tar.gz)

Enzyme 3.1.0 发布,JavaScript 测试工具

Enzyme 3.1.0 发布,JavaScript 测试工具

Enzyme 3.1.0 已发布,Enzyme 来自 airbnb 公司,是一个用于 React 的 JavaScript 测试工具,方便你判断、操纵和历遍 React Components 输出。Enzyme 的 API 通过模仿 jQuery 的 API ,使得 DOM 操作和历遍很灵活、直观。Enzyme 兼容所有的主要测试运行器和判断库,文档和例子使用 mocha 和 chai。

更新内容:

New Stuff

  • Added hostNodes method to ReactWrapper (#1179)

修复

  • Add an npmignore file to all packagestle (#1204)

  • Fix node resolving in React 16 adapter (#100)

  • upgrade to rst-selector-parser@^2.2.2 (#1146)

文档

  • Symlink readme to all packages (#1205)

  • fix some typos (#1165)

  • ES5 setup file correction (#1194)

  • updated component name being used in example (#1180)

  • Fixing a few typos... (#1171)

  • Fix typo (#1142)

下载地址:

  • Source code (zip)

  • Source code (tar.gz)

Enzyme —— 用于 React 的 JavaScript 测试工具

Enzyme —— 用于 React 的 JavaScript 测试工具

Enzyme 来自 airbnb 公司,是一个用于 React 的 JavaScript 测试工具,方便你判断、操纵和历遍 React Components 输出。

Enzyme:用于 React 的 JavaScript 测试工具

Enzyme:用于 React 的 JavaScript 测试工具

今天关于javascript-jQuery不适用于jsdom / enzyme的讲解已经结束,谢谢您的阅读,如果想了解更多关于Enzyme 2.6.0 发布,JavaScript 测试工具、Enzyme 3.1.0 发布,JavaScript 测试工具、Enzyme —— 用于 React 的 JavaScript 测试工具、Enzyme:用于 React 的 JavaScript 测试工具的相关知识,请在本站搜索。

本文标签: