簡體   English   中英

如何在Mocha測試中重用變量?

[英]How to reuse variables in Mocha tests?

在我的摩卡測試中,我總是需要相同的庫。 例如:

var mongoose = require('mongoose'),
  User = mongoose.model('User'),
  _ = require('underscore');

我想像這樣在每個測試文件中使用它們:

describe('xxx', function () {
  it('xxx', function (done) {
    var user = new User();
    done();
  });
});

而不使用任何前綴,例如var user = new somefile.User(); 怎么做還是有更好的解決方案? 謝謝。

基本上,這是不可能的。

Mocha具有-r (或長版本中的--require )參數,該參數可幫助您需要模塊,但如文檔所述:

--require選項對諸如should.js之類的庫很有用,因此您可以簡單地--require should而不是在每個測試文件中手動調用require('should') 請注意,這應該很好,因為它可以Object.prototype ,但是,如果您希望訪問模塊的導出,則必須要求它們,例如var should = require('should')

我可以想象出一種解決方法是引入一個輔助文件,該文件除了使用單個模塊導出所需的所有必需模塊外,基本上什么也沒做(基本上歸結為您建議的帶prefix ):

module.exports = {
  mongoose: require('mongoose'),
  User: mongoose.model('User'),
  _: require('underscore')
};

這樣一來,您只能在實際的測試文件(幫助文件)中導入一個模塊,並將所有其他模塊作為子對象訪問,例如:

var helper = require('./helper');

describe('xxx', function () {
  it('xxx', function (done) {
    var user = new helper.User();
    done();
  });
});

可以使用比helper更好的名稱,但是基本上這可以使它起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM