Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于Javascript导入对象或函数的Intellij调试器控制台_Javascript_Intellij Idea_Jestjs_Javascript Debugger - Fatal编程技术网

用于Javascript导入对象或函数的Intellij调试器控制台

用于Javascript导入对象或函数的Intellij调试器控制台,javascript,intellij-idea,jestjs,javascript-debugger,Javascript,Intellij Idea,Jestjs,Javascript Debugger,我有一个Jest文件,正在Intellij中调试 import { screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; describe('<SamplePage />', () => { afterEach(() => { jest.clearAllMocks(); }

我有一个Jest文件,正在Intellij中调试

import { screen, waitFor } from '@testing-library/react';
import userEvent from '@testing-library/user-event';


    describe('<SamplePage />', () => {
      afterEach(() => {
        jest.clearAllMocks();
      });
    
      it('Correct text in SampleForm', () => {
        renderPage();
        expect(screen.getByRole('heading')).toHaveTextContent(
          "Text to check",
        );
      });
    });
从'@testing library/react'导入{screen,waitFor};
从“@testing library/user event”导入userEvent;
描述(“”,()=>{
之后(()=>{
开玩笑。clearAllMocks();
});
它('Correct text in SampleForm',()=>{
renderPage();
期望(screen.getByRole('heading')).toHaveTextContent(
“要检查的文本”,
);
});
});
然后,我通常在expect()行上放置一个断点,这样视图就已经呈现了。到达断点后,我打开调试器控制台,通过测试各种语句开始使用测试api。但是,在尝试调用screen.debug()时,调试器控制台中立即出现错误:

尽管自动完成在屏幕的调试器中工作:

例如,我一直使用的解决方法是将导入的对象屏幕分配到变量x中。然后,当我到达断点时,我可以使用x变量作为屏幕,并调用各种方法,如debug或getByRole

然而,这很麻烦,因为可能有多个导入的对象我想要探索,并且将它们分配给一个临时变量是不可伸缩的。有人知道如何在Intellij中解决这个问题吗?

在调试过程中评估代码时未定义的变量(
在您的情况下为screen
)是由导入对象的奇怪传输方式+sourcemaps中缺少名称映射引起的:如果在传输/混淆时重命名了变量,并且没有提供适当的名称映射,调试器将无法将源代码中的变量与VM中的变量相匹配


在评估babel传输/webpack构建的模块中的ES6导入时,存在一些已知问题。详情请参阅。不幸的是,没有办法修复IDE端的问题。

提供的代码不会抛出该错误,除非它隐藏在
renderPage()中。
?不,抛出该错误的不是代码,而是调试器控制台,当我到达expect()行上的断点时,我使用调试器控制台执行screen.debug()之类的语句
expect(screen.getByRole('heading')).toHaveTextContent(“要检查的文本”)
不调用
屏幕。debug
@evolutionxbox不,我在调试器控制台手动调用它;问题不在代码本身,而是在调试器控制台中,您可以在那里键入任何要执行的JS语句。由于某些原因,调试器控制台无法解析屏幕或导入的任何对象感谢这些链接,它们将被读取