簡體   English   中英

使用玩笑在節點上模擬moon.js

[英]mock moment.js in node using jest

我正在嘗試模擬moment.js以預測我的集成測試。
我一直在試圖嘲笑jest這樣

import moment from 'moment'
...
jest.mock('moment', () => () => ({valueOf: () => 100})

但是,當我運行測試時,源代碼使用正常moment

通過執行此操作 ,我已經成功地覆蓋了moment行為,但這還不夠好,因為它可以覆蓋更多我不想更改的功能。

當我必須模擬一下moment.js函數時,我可以使用Sinon.jshttps://sinonjs.org/releases/v7.2.7/stubs/ )中的stubsSinon.js

它基本上是這樣的:

import * as sinon from 'sinon'
import moment from 'moment'
...
const stubValueOf = sinon.stub(moment, 'valueOf');
stubValueOf.returns(100);

重要提示:使用存根的良好實踐僅將其用於特定測試,而不是整個測試文件。 因此,每次使用后,請使用stubValueOf.restore() 如果要在同一測試stubValueOf.reset()具有不同值的方法“存根”,請使用stubValueOf.reset()

暫無
暫無

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

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