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进行模拟。你可以使用依赖项注入来实现这一点
然后在测试文件中,您可以通过以下方式模拟/stubbar()
:
foo.test.ts
您可以为此使用依赖项注入
然后在测试文件中,您可以通过以下方式模拟/stubbar()
:
foo.test.ts
foo.test.ts
test('Test for foo()', () => {
const mockBar = jest.fn().mockReturnValue(value)
expect(Foo.foo(arg, mockBar)).toBe(expectation)
})