单元测试Javascript – 对象不是构造函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了单元测试Javascript – 对象不是构造函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2399字,纯文字阅读大概需要4分钟。
内容图文
我正在尝试学习测试一些javascript文件.使用mocha和chai与webpack.
这是我的test / karma.conf.js
var webpack = require('webpack');
module.exports = function (config) {
config.set({
browsers: [ 'PhantomJS' ],
singleRun: true,
frameworks: [ 'mocha' ],
files: [
'tests.webpack.js'
],
preprocessors: {
'tests.webpack.js': [ 'webpack', 'sourcemap' ]
},
reporters: [ 'spec' ],
webpack: {
devtool: 'inline-source-map',
module: {
loaders: [
{ test: /\.js$/, loader: 'babel-loader' }
]
}
},
webpackServer: {
noInfo: true
}
});
};
这是我在karma配置上使用的test / test.webpack.js:
import chai from 'chai'
global.chai = chai
global.expect = chai.expect
global.should = chai.should()
var context = require.context('../src', true, /spec\.js$/);
context.keys().forEach(context);
我的测试非常基础,只是为了测试它是否正常工作src / index.spec.js:
describe("A test suite", function() {
beforeEach(function() { });
afterEach(function() { });
it('should fail', function() { expect(true).to.be.true; });
});
当我尝试运行测试时,我收到了这个错误
./node_modules/karma/bin/karma start test / karma.conf.js
01 04 2016 14:15:08.191:INFO [karma]: Karma v0.13.22 server started at http://localhost:9876/
01 04 2016 14:15:08.255:INFO [launcher]: Starting browser PhantomJS
01 04 2016 14:15:12.443:INFO [PhantomJS 2.1.1 (Windows 8 0.0.0)]: Connected on socket /#GivXNjnm0g5H9DBXAAAA with id 29314805
PhantomJS 2.1.1 (Windows 8 0.0.0) ERROR
TypeError: Object is not a constructor (evaluating '$export($export.S + $export.F * !__webpack_require__(17), 'Object', { defineProperty: __webpack_require__(13).f })')
at C:/Users/pablo.feldman/Documents/Projects/jpmc-components/test/tests.webpack.js:535 <- webpack:///~/babel-runtime/~/core-js/library/modules/es6.object.define-property.js:3:0
PhantomJS 2.1.1 (Windows 8 0.0.0): Executed 0 of 0 ERROR (0.101 secs / 0 secs)
解决方法:
我有完全相同的问题,谷歌搜索解决方案时遇到了这个帖子.不幸的是没有解决方案,所以花了几个小时尝试不同的建议后我找到了正确的配置.
这是我做的:
>已安装的phantomjs-polyfill-object-assign模块
npm install --save-dev phantomjs-polyfill-object-assign
>在karma的files属性下配置上面的polyfill:
... files: [ '../node_modules/phantomjs-polyfill-object-assign/object-assign-polyfill.js', 'test/variables.js', 'test/**/*.spec.js', ], ...
注意:根据您的业力配置,上述填充路径可能需要调整.
>使用exclude属性更新了babel-loader配置:
... loaders: [{ test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/, }, ...
就是这样,测试可以再次运行.
内容总结
以上是互联网集市为您收集整理的单元测试Javascript – 对象不是构造函数全部内容,希望文章能够帮你解决单元测试Javascript – 对象不是构造函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。