Java 评估时的调试
在计算任意表达式时,例如在IDE计算对话框中,是否可能在断点处停止执行 假设我计算myClass.myMethod(),我在其中设置了一个断点,并且该断点被命中Java 评估时的调试,java,debugging,jvm,Java,Debugging,Jvm,在计算任意表达式时,例如在IDE计算对话框中,是否可能在断点处停止执行 假设我计算myClass.myMethod(),我在其中设置了一个断点,并且该断点被命中 如果可能的话,我想这是JVM的问题,而不是IDE。有什么想法吗?假设您正在使用Spring。那么你很可能已经接受了整个模式 我正在使用IntelliJ和JUnit,因此要适应您的需要 我在每个IntelliJ模块(层)测试根的根上都有一个基类: /** * An abstract base class that other tests
如果可能的话,我想这是JVM的问题,而不是IDE。有什么想法吗?假设您正在使用Spring。那么你很可能已经接受了整个模式 我正在使用IntelliJ和JUnit,因此要适应您的需要 我在每个IntelliJ模块(层)测试根的根上都有一个基类:
/**
* An abstract base class that other tests can inherit from to
* get spring functionality.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"/spring-config-domain.xml"})
public abstract class SpringAwareTest {
}
然后,您的测试可以简单地将其扩展为“上下文感知”
并在Spring配置文件中导入较低级别的层(无论如何,您都需要在应用程序中执行此操作):
...
现在,你可以设置断点,并逐步进入你的心的内容;所有这些都有一个完整的背景
如果您只是想测试(或逐步测试)一段不需要上下文的代码。然后按照正常值进行测试(不要延长测试)。这会快得多,因为它不需要延迟上下文。当您转向持续集成(如Jenkins等)时,这一点就开始变得重要起来。这是一个IDE问题,除非您正在编写IDE。如果你正在编写一个IDE,那么你需要知道它在JVM中是如何工作的。你听说过JUnit/TestNG等,对吗?@immibis我不是一个开发IDE的人。哪些IDE提供了这样的功能?这个想法似乎缺乏说服力it@Kong测试框架如何与此相关?不知道哪些IDE允许这样做。
public class NavigationServiceTest extends SpringAwareTest {
@Autowired private NavigationService service;
@Test
public void folders() throws IOException {
List<Folder> folders = service.getFolders(TestConstants.USER_ID);
Assert.assertNotNull("Folders is null", folders);
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"/spring-config-service.xml"})
public abstract class SpringAwareTest {
}
<import resource="spring-config-dal.xml"/>
<import resource="spring-config-security.xml"/>
...