Typescript/Rect单元测试库,能够逐步通过导入的函数进行调试



我目前正在使用Jest对React组件和Typescript函数进行单元测试。到目前为止,它在减少回归方面取得了巨大成功,我对vscode Jest插件感到满意,它可以让我在单元测试代码中逐步查看失败前的变量值和步骤。

然而,插件/Jest(不确定是哪一个(不允许我逐步完成我试图测试的导入函数/组件;调试步骤through仅适用于单元测试文件。

例如:

// file.tsx (file with functionality I want to test)
export function addOne(x: number) {
return x + 1; // can't step through this
}
// file.test.tsx (the test file)
import addOne from './file';
....... test set up......
it('addOne adds to 3 to get 5', () => { // obviously a failing test
const start = 3; // can only step through this file
const result = addOne(start); // step into doesn't work here, will skip over to the expect
expect(result).toBe(5);
});

这显然是一个假的例子,但我只能逐步完成file.test.tsx中的步骤,而不能进入addOne函数并查看它内部发生了什么。我只能看到它返回了什么。为了解决这个问题,我不得不将所有变量的console.log放在导入的功能文件(file.tsx(中,这很痛苦。

有没有一种方法可以配置Jest(或另一个react/typescript的单元测试库(,使其能够逐步完成这些导入的函数?

感谢

更新:我应该澄清,当我的意思是我不能进入函数时,我的意思也是在file.tsx中设置断点是不起作用的。然而,调试器确实在file.test.tsx中的断点处停止,我觉得奇怪的是,我不能简单地执行前者。

您可以使用Node支持的debugger;语句。它将停止代码执行(断点(并打开类似gdb的提示,您可以使用终端进行调试。你可以在这个页面上找到更多信息。它还解释了如何在VSCode中启用调试。此外,WebStormIDE支持从IDE运行Jest测试,并使用IDE定义的断点。

最新更新