我正在尝试jest
对我的程序运行测试,react
但不断得到:
Object prototype may only be an Object or null
我的测试如下所示:
global.React = require('../node_modules/react/addons');
global.TestUtils = React.addons.TestUtils;
describe('Stat', function() {
it('Stat is defined', function() {
jest.dontMock('../src/app/0-stat.jsx');
global.Stat = require('../src/app/0-stat.jsx');
});
});
describe('CoPays', function() {
it('CoPays is defined', function() {
jest.dontMock('../src/app/1-copays.jsx');
global.CoPays = require('../src/app/1-copays.jsx');
});
});
我的代码看起来像这样:
class Stat extends React.Component {
constructor() {
super();
this.state = {
index: 0
};
}
}
class CoPays extends Stat {
constructor() {
super();
}
}
Stat
被定义为预期但CoPays
抛出错误。我正在使用启用的react-tools
处理器。harmony
这是堆栈跟踪:
[10:28:40] Using gulpfile ~/Projects/dashboard-ui/gulpfile.js
[10:28:40] Starting 'test'...
[10:28:40] Finished 'test' after 3.91 ms
FAIL tests/unitTests.js (0.88s)
● CoPays › it CoPays is defined
- TypeError: /Users/omeky/Projects/dashboard-ui/src/app/1-copays.jsx: Object prototype may only be an Object or null
at Function.create (native)
at /Users/omeky/Projects/dashboard-ui/src/app/1-copays.jsx:9:658
at Object.runContentWithLocalBindings (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/src/lib/utils.js:361:17)
at Loader._execModule (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:250:9)
at Loader.requireModule (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:916:12)
at Loader.requireModuleOrMock (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:937:17)
at Spec.<anonymous> (/Users/omeky/Projects/dashboard-ui/tests/unitTests.js:14:25)
at jasmine.Block.execute (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:1065:17)
at jasmine.Queue.next_ (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2098:31)
at jasmine.Queue.start (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2051:8)
at Spec.jasmine.Spec.execute (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2378:14)
at jasmine.Queue.next_ (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2098:31)
at jasmine.Queue.start (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2051:8)
at Suite.jasmine.Suite.execute (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2523:14)
at jasmine.Queue.next_ (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2098:31)
at onComplete (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2094:18)
at Suite.jasmine.Suite.finish (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2480:5)
at null.onComplete (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2524:10)
at jasmine.Queue.next_ (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2108:14)
at onComplete (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2094:18)
at Spec.jasmine.Spec.finish (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2352:5)
at null.onComplete (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2379:10)
at jasmine.Queue.next_ (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2108:14)
at null._onTimeout (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/vendor/jasmine/jasmine-1.3.0.js:2088:18)
at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
1 test failed, 0 tests passed (1 total)
Run time: 1.039s
Failed with unexpected error.
/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/src/jest.js:179
throw error;
^
SyntaxError: Unexpected token u
at Object.parse (native)
at MemoryStore.Store.getObject (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/node_modules/istanbul/lib/store/index.js:108:21)
at Object.Collector.fileCoverageFor (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/node_modules/istanbul/lib/collector.js:93:30)
at /Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/node_modules/istanbul/lib/report/json.js:61:62
at Array.forEach (native)
at /Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/node_modules/istanbul/lib/report/json.js:53:31
at SyncFileWriter.extend.writeFile (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/node_modules/istanbul/lib/util/file-writer.js:57:9)
at FileWriter.extend.writeFile (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/node_modules/istanbul/lib/util/file-writer.js:147:23)
at JsonReport.Report.mix.writeReport (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/node_modules/istanbul/lib/report/json.js:50:16)
at /Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/node_modules/istanbul/lib/reporter.js:93:20
at Array.forEach (native)
at Object.Reporter.write (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/node_modules/istanbul/lib/reporter.js:87:30)
at DefaultTestReporter.IstanbulTestReporter.onRunComplete (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/src/IstanbulTestReporter.js:33:14)
at /Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/src/TestRunner.js:453:40
at _fulfilled (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/node_modules/q/q.js:798:54)
at self.promiseDispatch.done (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/node_modules/q/q.js:827:30)
at Promise.promise.promiseDispatch (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/node_modules/q/q.js:760:13)
at /Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/node_modules/q/q.js:574:44
at flush (/Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/node_modules/q/q.js:108:17)
at /Users/omeky/Projects/dashboard-ui/node_modules/gulp-jest/node_modules/jest-cli/src/lib/FakeTimers.js:325:7
at process._tickCallback (node.js:419:13)