私はmochaとJsDomを使って反応コンポーネントをテストしています。mocha反応のJSDOMテスト、getElementById戻り値
まず、私のコンポーネントは完全に動作するので、テスト環境に問題があります。
状況:
私はidのselect
タグのカップルをレンダリングするコンポーネントを持っています。次にdocument.getElementById
を使用してこれらの選択タグを取得し、オプションを追加するコンポーネントのcomponentDidMount
。しかし、私は私のテストを実行すると、これらのnullが表示されますgetElementById
。
私がcomponentDidMount
をコメントアウトし、以下のようなものをアサートすると、それは完全に機能し、コンポーネントはそれらの選択タグをレンダリングしました。
describe('test component', function(){
var renderedElement = ReactTestUtils.renderIntoDocument(<Component/>);
var renderedNode = ReactDom.findDOMNode(renderedElement);
it('should have the proper markup', function(){
assert.equal(renderedNode.childElementCount, 5);
[...]
})
})
何が問題を引き起こしていますか?それは原因ですdocument.getElementById
ドキュメントオブジェクトは私のテスト環境に存在しません私はこれをテストする必要があります私は '偽' 1を使用して原因ですか?以下
モカ
(function() {
'use strict';
var jsdom = require('jsdom'),
baseHTML,
window;
if (!global.window) {
baseHTML = '<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>Tests</title></head><body></body></html>';
window = jsdom.jsdom(baseHTML).defaultView;
global.window = window;
global.document = window.document;
global.navigator = window.navigator;
}
}());