您好,登錄后才能下訂單哦!
在Jest測試中,我們可以使用jest.fn()
來創建一個mock函數。這個函數可以接收一個實現作為參數,然后它會返回一個新的函數,這個新函數可以跟蹤它被調用的情況。我們還可以設置這個mock函數的返回值。
下面是一個簡單的例子:
const myFunction = jest.fn();
// 設置 mock 函數的返回值
myFunction.mockReturnValue(42);
// 調用 mock 函數
const result = myFunction();
// 斷言函數被調用
expect(myFunction).toHaveBeenCalled();
// 斷言函數的返回值
expect(result).toBe(42);
你也可以鏈式地設置多個返回值:
const myFunction = jest.fn()
.mockReturnValueOnce(1)
.mockReturnValueOnce(2)
.mockReturnValue(3);
console.log(myFunction()); // 輸出 1
console.log(myFunction()); // 輸出 2
console.log(myFunction()); // 輸出 3
console.log(myFunction()); // 輸出 3,因為這是鏈式設置的最后一個返回值
如果你想要在每次調用時返回不同的值,你可以使用.mockImplementation()
方法:
let count = 0;
const myFunction = jest.fn().mockImplementation(() => {
count++;
return count * 2;
});
console.log(myFunction()); // 輸出 2
console.log(myFunction()); // 輸出 4
console.log(myFunction()); // 輸出 6
這些方法可以讓你更好地控制mock函數的行為,從而使你的測試更加靈活和可靠。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。