我正在處理 CRA 回購,我正在添加測驗。
我面臨的問題是 Jest 將整個功能報告為未涵蓋的分支;根本沒有分支邏輯的函式。
例如
import { useCallback, useState } from 'react';
function useToggleModal(initialState = false) {
const [isOpen, setIsOpen] = useState<boolean>(initialState);
const handleOpenModal = useCallback(() => setIsOpen(true), []);
const handleCloseModal = useCallback(() => setIsOpen(false), []);
return { isOpen, handleOpenModal, handleCloseModal };
}
export default useToggleModal;
這是一個簡單的函式,然而,當它的所有其他測驗指標為 100% 時,分支覆寫率為 0%,將第 3 行(函式宣告的開頭)報告為未覆寫的分支,這沒有任何意義。
在我的測驗中,我還有許多其他此類情況,這種行為無緣無故地降低了我的分支覆寫率。
coverageProvider將選項更改為v8而不是babel似乎會生成正確的報告,至少對于我知道在babel用作覆寫提供者時報告錯誤的情況。我猶豫是否應該保留v8,因為它存在一些問題
https://jestjs.io/docs/configuration#coverageprovider-string
uj5u.com熱心網友回復:
好吧,事實證明接受可選引數的函式被認為是一個分支,所以我需要一個不傳遞引數的測驗
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/516733.html
