Jasmine测试和ES6模块转换器

时间:2014-10-05 08:44:00

标签: javascript jasmine ecmascript-6 code-translation

我在ES6 module transpiler和我的Jasmine测试中遇到了一些问题,在这里:

import Foo from '../dist/Foo.js';

describe('Test Foo', ()=>{
    let foo

    beforeEach(()=>{
        foo = new Foo()
    })

    it('Foo should create new instance', ()=>{
        expect(foo instanceof Foo).toBe(true)
    })
})

和我的gulp文件:

gulp.task('tests:concat', function(){
    return gulp.src(['spec/*.js', '!spec/all.spec.js'])
               .pipe(concat('all.spec.js'))
               .pipe(gulp.dest('spec/'))
})

gulp.task('tests:es6', ['tests:concat'], function(){
    return gulp.src('spec/all.spec.js')
               .pipe(es6ModuleTranspiler({ type: 'cjs' }))
               .pipe(es6transpiler())
               .pipe(gulp.dest('spec/'))
})

gulp.task('tests', ['tests:es6'], function(){
    gulp.src('spec/all.spec.js')        
        .pipe(browserify())
        .pipe(gulp.dest('spec/'))
})

当我尝试运行此任务时

  

gulp tests

我得到了

    throw err
         ^
     

错误:Transform类中没有writecb

所以我发现错误在我的测试中抛出全局变量describe,因为如果我添加这一行:

let describe, beforeEach, it, expect

编译完成没有问题

在ES6模块转换器的文档中没有信息如何允许全局变量。如何解决?

0 个答案:

没有答案