Intellij Idea 有没有什么方法可以让IntelliJ在遇到断点时自动计算表达式?

kcrjzv8t  于 2023-10-15  发布在  其他
关注(0)|答案(1)|浏览(102)

我需要在IntelliJ调试器中运行大量的单元测试,并让它们都停在同一个断点处。当每个单元测试到此为止时,我将执行以下操作:

  • 右键单击并选择“计算表达式...”
  • 输入代码片段new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(myObject)并单击Evaluate
  • 复制结果的值

有没有什么方法可以让表达式在遇到断点时自动求值,这样我就不必右键单击并打开“求值”窗口,然后粘贴代码并每次单击求值按钮?

rt4zxlrg

rt4zxlrg1#

是的,使用条件断点,其中代码是条件的一部分。
只需右键单击断点并指定Condition。
您只需要在代码的末尾简单地添加return false,以便条件的计算结果为false,因此断点不会停止执行(如果您实际上希望它停止,则添加return true)。
示例:x1c 0d1x
当运行在MySQL中时,它输出:

Debug 0
Hello
Debug 1
Hello
Debug 2
Hello
Debug 3
Hello
Debug 4
Hello
Debug 5
Hello
Debug 6
Hello
Debug 7
Hello
Debug 8
Hello
Debug 9
Hello

P.S.这里有一段代码,可以用Java把东西放进剪贴板:

java.awt.Toolkit.defaultToolkit.systemClipboard.setContents(new java.awt.datatransfer.StringSelection(contentToCopy.toString()), null)

把它放到断点条件中,把contentToCopy替换为你需要放到剪贴板上的东西,附加return false--就完成了。
P.P.S.在这里,我认为应该是这样的:

java.awt.Toolkit.defaultToolkit.systemClipboard.setContents(new java.awt.datatransfer.StringSelection(new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(myObject)), null); return false

相关问题