[英]mocking imports that contain both named and a default export
我有一個實用程序文件,其中包含許多導出以及默認導出。 在同一個組件中使用了命名和導出默認值。 我無法確定如何針對同一測試中的命名組件和默認組件編寫測試。
下面的代碼以簡化的方式說明了該應用程序。
實用程序.js
export const mock1svc = () => {
return true;
};
const mock2svc = () => {
return true;
};
export default mock2svc;
comp.js (僅供參考,該應用程序呈現良好)
import Utils, { mock1svc } from 'utils';
...
render (
<p>{mock1svc()}</p>
<p>{Utils()}</p>
)
比較測試.js
我可以測試默認導出:
jest.mock('../mock-utils', () => jest.fn());
產生的錯誤:
TypeError: (0 , _mockUtils.mock1svc) 不是函數
或測試命名導出:
jest.mock('../mock-utils', () => ({
mock1svc: jest.fn(),
mock2svc: jest.fn(),
}));
產生的錯誤:
TypeError: (0 , _mockUtils.default) 不是函數
utils
模塊正在導出一個對象。 您應該能夠創建該對象並為其分配一個.default
如下所示:
jest.mock('../mock-utils', () => {
const mockUtils = {
mock1svc: jest.fn(),
mock2svc: jest.fn(),
};
mockUtils.default = jest.fn();
return mockUtils
});
確保您模擬的路徑“指向”與導入語句相同的位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.