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

How to add global variables used by all tests in Javascript?

本文关键字:测试 全局变量 Javascript 添加      更新时间:2023-09-26

我找不到如何在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'
]

或者使用beforeLaunchonPrepare(但想要一个函数,不确定如何以这种方式公开vars),但没有成功。

然而,对于这种代码重用,我更喜欢通用的Javascript方法。

有没有什么好的方法可以避免在任何地方重复这种常见的代码,尤其是在测试中(摩卡、因果报应、量角器)?

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

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;