Typescript 如何监视另一个函数中使用的函数?

Typescript 如何监视另一个函数中使用的函数?,typescript,testing,mocking,jestjs,stub,Typescript,Testing,Mocking,Jestjs,Stub,我有一个包含源代码foo.ts的文件和一个名为foo.test.ts foo.ts foo.ts 我正在尝试存根bar(),当调用foo(参数)时,bar()返回false 我浏览了并尝试基于那里的方法实现,但是当我在foo.test.ts文件中调用foo(argument)时,它们不起作用 我怎样才能做到这一点呢?对于在定义的同一模块中使用的函数,不可能做到这一点,除非它是一种可以监视对象的方法 foo和bar需要一起测试,或者它们应该被分成不同的模块,并用jest.mock进行模拟。对于

我有一个包含源代码
foo.ts
的文件和一个名为
foo.test.ts

foo.ts
foo.ts
我正在尝试存根
bar()
,当调用
foo(参数)
时,
bar()
返回false

我浏览了并尝试基于那里的方法实现,但是当我在
foo.test.ts
文件中调用
foo(argument)
时,它们不起作用


我怎样才能做到这一点呢?

对于在定义的同一模块中使用的函数,不可能做到这一点,除非它是一种可以监视对象的方法


foo
bar
需要一起测试,或者它们应该被分成不同的模块,并用
jest.mock进行模拟。对于在定义的同一模块中使用的函数,不可能这样做,除非它是一种可以监视对象的方法


foo
bar
需要一起测试,或者它们应该被分成不同的模块,并用
jest.mock进行模拟。你可以使用依赖项注入来实现这一点

然后在测试文件中,您可以通过以下方式模拟/stub
bar()

foo.test.ts

您可以为此使用依赖项注入

然后在测试文件中,您可以通过以下方式模拟/stub
bar()

foo.test.ts
foo.test.ts
test('Test for foo()', () => {
  const mockBar = jest.fn().mockReturnValue(value)
  expect(Foo.foo(arg, mockBar)).toBe(expectation)
})