테스트 환경을 설정하는 동안 다음과 같은 문제가 발생했습니다. 나는 (mocha ./src/test/.setup.js ./src/test/**.test.js
사용) 테스트를 실행하면, 나는 Element is not defined
오류 :React + Onsenui 앱에서 mocha 테스트를 실행할 때`ReferenceError : Element is not`가되었습니다
app\node_modules\onsenui\js\onsenui.js:603
var originalCreateShadowRoot = Element.prototype.createShadowRoot;
^
ReferenceError: Element is not defined
at app\node_modules\onsenui\js\onsenui.js:603:34
at app\node_modules\onsenui\js\onsenui.js:359:7
at Array.forEach (native)
at initializeModules (app\node_modules\onsenui\js\onsenui.js:358:13)
at app\node_modules\onsenui\js\onsenui.js:908:5
(...)
어떻게 이런 일이 가능한 요소는 기본 DOM 요소 아닌가요?
다음 버전
이 사용됩니다다음 .setup.js 파일이 사용됩니다
다음과 같이require('babel-register')({
presets: ["react","airbnb","es2015"]
});
var jsdom = require('jsdom').jsdom;
var exposedProperties = ['window', 'navigator', 'document'];
global.document = jsdom('');
global.window = document.defaultView;
Object.keys(document.defaultView).forEach((property) => {
if (typeof global[property] === 'undefined') {
exposedProperties.push(property);
global[property] = document.defaultView[property];
}
});
global.navigator = {
userAgent: 'node.js'
};
documentRef = document;
는 그리고 테스트 파일은 다음과 같습니다
import React from 'react';
import { expect } from 'chai';
import { shallow, mount, render } from 'enzyme';
import * as Ons from 'react-onsenui';
import MainPage from '../react/MainPage/MainPage.jsx';
describe("Component MainPage", function() {
it("should have a Ons.Page component", function() {
const wrapper = mount(<MainPage />);
expect(wrapper.find(Ons.Page)).to.equal(true);
});
});
이미 jsDOM을 사용하고 있습니다. 테스트 설치 파일'.setup.js '를 참조하십시오. 아마도 jsDOM은 Element API를 지원하지 않을 수 있습니까? – corneyl
'jsdom-global'이 실제로이 오류를 해결했지만 여전히 다른 오류가 있습니다. jsDOM도 웹 구성 요소에 대한 지원이 부족합니다. 이 답변은 저를 가장 잘 도와 주었지만 다른 오류를 막기 위해 카르마 주자로 전환하려고합니다. – corneyl