Tag: jsdom

Zombiejs jQuery nullTypeError’compareDocumentPosition’

Zombie:无法读取属性’compareDocumentPosition’的null TypeError:无法读取null的属性’compareDocumentPosition’ 每当我尝试使用Zombiejs加载包含jQuery的页面时,就会发生这种情况。 这在Debian和Windows上发生,包含各种不同的页面,使用不同版本的jQuery,页面上没有别的东西。 它似乎与jsDom在页面文档准备好之前评估jQuery的方式有关,但它远远超出了我的想象。 任何人遇到这个,知道解决方法,或有任何指针? 谢谢! 更新:这是我的测试(实际通过,但运行调试显示我提到的错误): zombie = require “zombie” browser = new zombie.Browser({debug: false}) $ = require “jquery” require “should” app = “http://localhost:3000/” describe “app”, -> describe “index”, -> it “should display correct title”, (done) -> browser.visit app, (err, browser) -> done() 这是错误: Zombie: GET http://localhost:3000/js/jquery-1.7.1.js => 200 Zombie: Cannot read property […]

JSDOM和jQuery没有一起工作

我对mocha和chai这样的测试环境很陌生,我想通过以下在线教程进行练习,但似乎它不喜欢我的工作,并给我一个错误说: global.document = _jsdom2.default.jsdom(”); ^ TypeError: _jsdom2.default.jsdom is not a function 我的test_helper看起来像, import jsdom from ‘jsdom’; import jquery from ‘jquery’; import TestUtils from ‘react-dom/test-utils’; import ReactDOM from ‘react-dom’; import chai, { expect } from ‘chai’; import React from ‘react’; import { Provider } from ‘react-redux’; import { createStore } from ‘redux’; import reducers from ‘../src/reducers’; […]

jquery不适用于jsdom / enzyme

我有一个最小的测试反应应用程序与以下组件: import React from ‘react’; import $ from ‘jquery’; export default class App extends React.Component { componentDidMount() { console.log(‘componentDidMount’, $(‘#helloDiv’).length); } render() { return Hello React! ; } } 这在浏览器(Chrome)中加载时工作正常。 componentDidMount()中的console.log()打印出找到的1个helloDiv元素 但是,如果我使用mocha + enzyme + jsdom运行测试,则App组件中的相同console.log()会输出0: import React from ‘react’; import { mount } from ‘enzyme’; import { expect } from ‘chai’; import App from […]

使用Mocha对使用Typescript的Jquery进行unit testing时如何修复“$ is not defined”错误?

我正在为包含Jquery的 Typescript代码编写Mochaunit testing。 我正在使用jsdom来获取文档对象。 当我将我的TS代码编译为JS并运行测试时,它会抛出一个错误[ReferenceError:$未定义] 。 我的Typescript代码在这里 export function hello(element) : void { $(element).toggleClass(‘abc’); }; 我的unit testing代码如下: import {hello} from ‘../src/dummy’; var expect = require(‘chai’).expect; var jsdom = require(‘jsdom’); var document = jsdom.jsdom(); var window = document.defaultView; var $ = require(‘jquery’)(window); describe(‘TEST NAME’, () => { it(‘should run’, (done) => { hello($(‘div’)); done(); }); }); […]

如何使用节点在我的代码中正确地需要jquery和JSDOM?

我无法使用jquery和JSDOM。 我正在使用已经安装和需要的nightmarejs在atom中编码的节点,并且nightmarejs正常工作。 对于jquery和JSDOM,我做了与nightmarejs相同的事情并使用: npm install jquery –save npm install JSDOM –save 我目前在编码中: var Nightmare = require (‘nightmare’); var nightmare = Nightmare({ show: true , height: 900}); const jsdom = require(“jsdom”); const { JSDOM } = jsdom; require(“jsdom”).env(“”, function(err, window) { if (err) { console.error(err); return; } var $ = require(“jquery”)(window); }); 如果我删除涉及JSDOM和jquery的所有编码,我的编码将起作用但是一旦我需要它们并在终端中运行它我得到错误: require(…).env is not […]