Javascript Karma[Jasmine]-如何从测试用例中分离代码

Javascript Karma[Jasmine]-如何从测试用例中分离代码,javascript,jasmine,karma-runner,Javascript,Jasmine,Karma Runner,有没有一种标准的方法通过使用Jasmine将代码与测试分开 ==functions.js function sample() { return true; } this.sample = function() { return true; }; ==functions.spec.js describe('functions', function () { it('sample', function () { expect(sample()).toEq

有没有一种标准的方法通过使用Jasmine将代码与测试分开

==functions.js

function sample() {
    return true;
}
this.sample = function() {
    return true;
};
==functions.spec.js

describe('functions', function () {

    it('sample', function () {
        expect(sample()).toEqual(true);
    });

});
var source = require('./functions.js');
...
expect(source.sample()).toEqual(true);
==karma.config.js

module.exports = function (config) {
    config.set({
        basePath: __dirname + '/../public/',
        frameworks: [
            'jasmine'
        ],
        browsers : ['PhantomJS'],
        client: {
            jasmine: {
                stopOnFailure: true
            }
        },
        files: [
            'js/**/*.spec.js'
        ]
    });
};
browserify: {
        debug: true,
        plugin: ['proxyquireify/plugin'],
        extensions: ['.js']
    },
    preprocessors: {
        'js/**/*.spec.js': ['browserify']
    }
提前谢谢


我试图使用“browserify”,但没有成功:

==karma.config.js

module.exports = function (config) {
    config.set({
        basePath: __dirname + '/../public/',
        frameworks: [
            'jasmine'
        ],
        browsers : ['PhantomJS'],
        client: {
            jasmine: {
                stopOnFailure: true
            }
        },
        files: [
            'js/**/*.spec.js'
        ]
    });
};
browserify: {
        debug: true,
        plugin: ['proxyquireify/plugin'],
        extensions: ['.js']
    },
    preprocessors: {
        'js/**/*.spec.js': ['browserify']
    }
==functions.spec.js

describe('functions', function () {

    it('sample', function () {
        expect(sample()).toEqual(true);
    });

});
var source = require('./functions.js');
...
expect(source.sample()).toEqual(true);

原始文件中的小更改有助于:

==functions.js

function sample() {
    return true;
}
this.sample = function() {
    return true;
};