Как проверить мой код JavaScript в браузере с помощью реагировать?Испытанная шутка и мокко - пока безуспешно - PullRequest
0 голосов
/ 11 октября 2018

Я занимаюсь разработкой простого редактора в браузере.Моя цель - запустить модульные тесты для кода, который мои пользователи пишут в указанном онлайн-редакторе.Я пытался использовать Jest и Mocha для запуска тестов их кода.Там нет пакета или утилиты, чтобы сделать эту работу легко, что я мог бы найти.Все это должно выполняться на стороне клиента в браузере.Нет доступа к узлу.

Мокко предположительно работает в браузере: https://mochajs.org/#running-mocha-in-the-browser

Я не смог успешно интегрировать его с реакцией.Я пытался добавить сценарии в componentDidMount

  componentDidMount() {
    const script1 = document.createElement('script');
    const script2 = document.createElement('script');
    const script3 = document.createElement('script');
    const script4 = document.createElement('script');
    const script5 = document.createElement('script');
    const script6 = document.createElement('script');

    script1.src = 'https://unpkg.com/chai/chai.js';
    script2.src = 'https://unpkg.com/mocha@5.2.0/mocha.js';

    script1.async = true;
    script2.async = true;
    script3.async = true;
    script4.async = true;
    script5.async = true;

    script1.type = 'text/javascript';
    script2.type = 'text/javascript';
    script3.type = 'text/javascript';
    script4.type = 'text/javascript';
    script5.type = 'text/javascript';

    script3.innerHTML = 'mocha.setup(\'bdd\')';
    script4.innerHTML = `function sum(a, b) {
      return a + b;
    }
    `;
    script5.innerHTML = 'mocha.checkLeaks();mocha.run();';
    script6.innerHTML = `    describe('sum', function() {
      it('should return sum of arguments', function() {
        chai.expect(sum(1, 2)).to.equal(3);
      });
    });`;

    this.instance.appendChild(script1);
    this.instance.appendChild(script2);
    this.instance.appendChild(script3);
    this.instance.appendChild(script4);
    this.instance.appendChild(script5);
    this.instance.appendChild(script6);
  }

  render() {
    return (
      <div id="mocha" ref={el => (this.instance = el)} />
    );
  }

Я продолжаю получать сообщения об ошибках:

Uncaught TypeError: mocha.setup is not a function

Uncaught ReferenceError: describe is not defined

Справкабыл бы оценен!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...