簡體   English   中英

在開玩笑中嘲笑函數是什么意思。 如何通過以下代碼的測試

[英]What does mocking a function mean in jest. How can I pass the test for below code

function doSomething(){
 const vw = document.querySelector('.a');
 const disp = vw.scrollTop;

 if(vw>700)
 // set background color of a div to red
 }

如何訪問 jest 測試用例中的變量並通過分支覆蓋率?

通常,通過單元測試,您希望隔離最小的可測試代碼段並對其進行測試。 如果一個函數調用其他函數,那么你模擬(偽造)這些函數。

在您的情況下,您當然不想測試document.querySelector()是否如宣傳的那樣工作。 你認為它確實如此。 所以讓我們嘲笑一下:

test('changes something to red when scrolltop is larger than 700', () => {
  // Let's create an element that we can test with.
  const el = document.createElement('div')
  el.scrollTop = 800

  // Let's mock querySelector to return that element no matter what.
  document.querySelector = jest.fn(() => el)

  // Run your function
  doSomething()

  // Did it work?
  expect(el.style.background).toBe('red')
})

暫無
暫無

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

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