相关疑难解决方法(0)

用Jest模拟的服务导致"jest.mock()的模块工厂不允许引用任何超出范围的变量"错误

我正在尝试模拟对服务的调用,但我正在使用以下消息:模块工厂jest.mock()不允许引用任何超出范围的变量.

我正在使用带有ES6语法,开玩笑和酶的babel.

我有一个简单的组件Vocabulary,它VocabularyEntry从a 获取-Objects 列表vocabularyService并呈现它.

import React from 'react';
import vocabularyService from '../services/vocabularyService';

export default class Vocabulary extends React.Component {

render() {

    let rows = vocabularyService.vocabulary.map((v, i) => <tr key={i}>
            <td>{v.src}</td>
            <td>{v.target}</td>
        </tr>
    );
    // render rows
 }
 }
Run Code Online (Sandbox Code Playgroud)

vocabularyServise很简单:

  import {VocabularyEntry} from '../model/VocabularyEntry';

  class VocabularyService {

  constructor() {
       this.vocabulary = [new VocabularyEntry("a", "b")];
  }
} 
export default new VocabularyService();`
Run Code Online (Sandbox Code Playgroud)

现在我想vocabularyService在测试中嘲笑:

import {shallow} from 'enzyme';
import …
Run Code Online (Sandbox Code Playgroud)

unit-testing reactjs jestjs babeljs

22
推荐指数
5
解决办法
1万
查看次数

标签 统计

babeljs ×1

jestjs ×1

reactjs ×1

unit-testing ×1