簡體   English   中英

笑話檢查模塊 function 調用計數

[英]jest check module function calls count

我對 javascript 還很陌生,我也開玩笑,我的測試中有這個用例

    jest.mock('./db' , ()=>{
    saveProduct: (product)=>{
    //someLogic
    return
    },
    updateProduct: (product)=>{
    //someLogic
    return
    }
})

這工作正常,我可以針對它運行我的測試,但我仍然想在我的測試用例中斷言updateProduct被調用了 3 次,我該如何實現呢?

這是一個示例,您如何測試這些模擬 fn

const saveProductMock = jest.fn((product)=>{
    //someLogic
    return
});

const updateProductMock = jest.fn((product)=>{
    //someLogic
    return
})

 jest.mock('./db' , ()=>{
    saveProduct: saveProductMock,
    updateProduct: updateProductMock
})
expect(saveProductMock).toHaveBeenCalled()
expect(saveProductMock.mock.calls[0][0]).toBe(product)

您在導出的模塊上運行模擬,然后在您導入模塊的任何地方,它都會被模擬。

import db from './db'; // import db

jest.mock('./db', () => ({ // I think you want to return an object
  saveProduct: (product) => {
    //someLogic
    return
  },
  updateProduct: (product) => {
    //someLogic
    return
  }
}));


// assert
expect(db.updatePorduct).toHaveBeenCalledTimes(3);

暫無
暫無

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

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