簡體   English   中英

jest.mock 不適用於 Javascript 測試和 Typescript 模塊

[英]jest.mock not working with Javascript test and Typescript module

我的utilFunction沒有被使用,並且將日志記錄添加到工廠函數表明它從未被調用過。 我已經嘗試搜索 jest.mock not working with relative paths 並且 jest.mock 沒有被 Typescript 調用,認為它可能與 JS 測試和 TS 源代碼的混合或源中使用的不同模塊路徑有關vs 測試代碼。

正在測試的代碼:

// src/foo/fooModule.ts
import { utilFunction } from '../util'

export const foo = () => {
  return utilFunction()
}

測試代碼:

// test/fooModule.test.js
const { foo } = require('../src/foo/fooModule')

jest.mock('../src/util', () => {
  return { utilFunction: () => 'mocked' };
});

describe('fooModule tests', () => ...)

jest.mock調用需要移到導入之上

// test/fooModule.test.js
jest.mock('../src/util', () => {
  return { utilFunction: () => 'mocked' };
});

const { foo } = require('../src/foo/fooModule')


describe('fooModule tests', () => ...)

在此之前,我使用 Jest 的最后一次經驗是在一個項目中,其中測試也是用 Typescript 編寫的,並且使用了babel-jest babel-jest包括babel-jest-hoist ,它會自動將 jest 模擬提升到任何導入之上,所以我以前不必擔心排序。

暫無
暫無

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

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