我想知道为什么当我明确地为玩笑设置一个模拟时会出现类型错误。
我这样做:
/** @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