Мокко JS с реагировать JS

1

Я пытаюсь написать тестовые скрипты, используя mocha js для моего кода реакции. Файл тестового помощника похож на этот browser.js

var baseDOM = '<!DOCTYPE html><html><head><meta charset="utf-8"></head><body></body></html>';
var jsdom = require('jsdom').jsdom;
global.document = jsdom(baseDOM);
global.window   = document.defaultView;
if ( global.self != null) {
  console.log(' global.self >>>>> ' + global.self);
} else {
  global.self = global.this;
}
global.navigator = {
  userAgent: 'node.js'
};

Сценарий тестирования похож на этот (component.specs.js)

'use strict';
import ReactDOM from 'react-dom';
import React from 'react';
import { expect } from 'chai';
import { mount, shallow, render } from 'enzyme';
import { App } from '../../js/app.js';
import sinon from 'sinon';
var dispatch = function() {
'enter code here'   console.log('>>>>>>>> Mocking dispatch ');
};

describe('App', function () {
it('App calls check', () => {
     sinon.spy(App.prototype, 'check');
     const enzymeWrapper = mount(<App {...props} />);
     expect(App.prototype.check.calledOnce).to.equal(true);
   });

Итак, когда я запускаю npm-тест, я получаю ошибку, поскольку "jsdom не является функцией". Что не так с кодом?

Теги:
mocha

1 ответ

1
Лучший ответ

Я не знаком с jsdom, но, основываясь на примерах, я не думаю, что вы используете его правильно. Пример кода jsdom:

const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM('<!DOCTYPE html><p>Hello world</p>');

Для вас это означает, что var jsdom = require('jsdom').jsdom; должен быть var jsdom = require('jsdom').JSDOM; , В этом примере также используется new.

Тем не менее, вы можете проверить шутку для тестирования узла/реакции - он очень прост в настройке и работает хорошо.

  • 0
    Спасибо, это сработало!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню