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