0

我正在尝试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)
4

0 回答 0