我想知道为什么当我明确地为玩笑设置一个模拟时会出现类型错误。
我这样做:
/** @jsx React.DOM */
//tests/app/headernav-test.js
jest.dontMock('../../../app/modules/HeaderNav.jsx');
jest.dontMock('../../TestContext');
jest.setMock('../../../app/modules/LoginStatus.jsx', './mocks/LoginStatus.jsx');
var React = require('react/addons'),
    MyComponent = require('../../../app/modules/HeaderNav.jsx'),
    TestUtils = React.addons.TestUtils,
    TestContext = require('./../../TestContext'),
    component = TestContext.getRouterComponent(MyComponent).component;
describe('HeaderNav', function() {
    it('renders the header nav', function() {
    });
});
我明白了。
TypeError: /home/4m1r/project/tests/app/modules/headernav-test.js: Cannot read property 'TestUtils' of undefined
mocks/LoginStatus.jsx 就是这样:
var React = require.requireActual('react');
var LoginStatus = React.createClass({
    displayName: 'LoginStatus',
    render: function() {
        return (
            <div id="" className="LoginStatus">
                <div className="login-status-box">
                </div>
            </div>
        );
    }
});
module.exports = LoginStatus;
这是 Jest 文档:https ://facebook.github.io/jest/docs/api.html#jest-setmock-modulename-moduleexports