如何在Javascript中添加所有测试使用的全局变量?

时间:2015-02-11 08:43:05

标签: javascript testing code-reuse base-class code-duplication

我找不到如何在Javascript中删除代码重复(基本上我用Java在基类中实现的目的)。

具体示例(至少)是以下代码,这对所有规范文件(以及可能的页面对象都是通用的,因为我在量角器中测试该模式):

var chai = require("chai");
var chaiAsPromised = require("chai-as-promised");
chai.use(chaiAsPromised);
var expect = chai.expect;

我可以做些什么让期待到处都可用吗? 我在量角器配置中尝试在规范之前加载一个文件:

specs: [
  'e2e/helpers/commonDefinitions.js',
  'e2e/**/*.spec.js'
]

或使用 beforeLaunch onPrepare (但想要一个函数,不知道如何以这种方式公开vars),但没有成功。

但是,我更喜欢通用的Javascript方法来重用这种代码。

有没有什么好方法可以避免在任何地方重复这种常见代码,特别是在测试中(摩卡,业力,量角器)?

1 个答案:

答案 0 :(得分:2)

一种方法是将该代码放在一个单独的文件中:

assert-styles.js

var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
var expect = chai.expect;
var should = chai.should;

module.exports = {
  expect: expect,
  should: should
};

然后将其导入其他测试文件:

test1.js

var assertStyles = require('./assert-styles');
var expect = assertStyles.expect;
var should = assertStyles.should;