簡體   English   中英

Mocha,Chai和Sinon在多個文件中測試錯誤

[英]Mocha, Chai, Sinon test error in multiple files

我有多個文件要測試,所有這些文件都使用相同的自定義../tools/http.util.js庫,如下所示:

const HttpUtil = require('../libs/http.util');

因此,我使用以下代碼在每個文件中模擬該庫:

before('before', function () {
    let HttpUtilMock = sinon.stub();
    HttpUtilMock.prototype.formGetUri = sinon.stub().returns("http://mock.com/");
    HttpUtilMock.prototype.formBaseRequestHeader = sinon.stub().returns("headers");
    testFunction.__set__("HttpUtil", HttpUtilMock);
});

當我運行mocha test/ --recursive --timeout=3000 ,出現問題 :第一個測試文件中http.util文件,但第二個文件中卻沒有http.util -我從http.util得到錯誤在開始第二個文件測試時。

我以為我必須在完成第一個文件測試后清除測試數據,但是我找不到用於sinon的任何清除命令來清除變量嘲笑。

要清除sinon模擬,請使用還原方法myMock.restore();。

我正在考慮的另一種替代方法,而不是使用rewire模塊。

....
const sinon = require('sinon');
let sandbox;

before('before', function () {
    sandbox = sinon.sandbox.create();
    sandbox.stub(HttpUtil, 'formGetUri').returns('http://mock.com');
    sandbox.stub(HttpUtil, 'formBaseRequestHeader').returns('headers');    
});

after('after', function() {
  sandbox.restore();
});

測試完成后必須調用restore()

暫無
暫無

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

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