3
我找不到如何删除Javascript中的代码重复(基本上,我将在Java中使用基类实现)。如何在Javascript中添加所有测试使用的全局变量?
具体的例子是(至少)下面的代码,这是通用于所有规格文件(和潜在的页面对象,因为我用量角器该模式测试):
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(但希望有一个功能,不知道如何公开瓦尔这种方式),但没有成功。
但是,我更喜欢这种代码重用的通用JavaScript方法。
有没有什么好的方法可以避免在任何地方重复这种常见的代码,特别是在测试(摩卡,业力,量角器)?
谢谢如果最终我只需要期待,这是好事,就像这里的情况一样。 但是有没有办法导出多个变量,使真正的文件暴露出其他人需要的许多模块? 因为如果我要求每个文件/模块,我将获得很少的可重用性:) – cowst 2015-02-11 12:43:11
@cowst肯定,只是出口和对象'module.exports = {expect:expect,assert:assert};'然后要求像这样,'var common = require('./ common'); var expect common.expect; var assert = common.assert;' – 2015-02-11 17:50:10
好吧,这种方式可以方便地将所有帮助器库保存在一个地方,并且在上述情况下,我们使用4行来获取我们需要的1个变量。 如果我们只是直接声明每行一个需要的变量,我们将使用它们来重写这些文件中的每一行,所以不是保存代码,而是在每个地方写入一行(require):D 我希望得到更多方便的是,注入一个文件(用正确的方式书写)会为您提供已知的变量的可见性。 无论如何,请编辑您的答案,以便我可以将其标记为“我们能做的最好的”以满足我的需求:) – cowst 2015-02-12 07:36:19