单元测试Debug疑似断点无效的问题 |
您所在的位置:网站首页 › idea断点不起作用 › 单元测试Debug疑似断点无效的问题 |
在进行单元测试时,突然出现了debug 错误 1. 疑似断点无效通过设置断点,但是怎么都运行不到断点处,所以博主以为断点失效了,网上各种找断点失误原因(相信以后也会碰到的) 通过在测试类方法体的第一行添加: int intNum = 1;测试断点,突然发现并不是断点失效,而是自己第一行代码就出错了,因此顺利解决第1个问题 2. 类静态方法错误类的静态变量,静态方法因为是和类一起加载进内存的,因此,静态方法的错误一定优先对象方法的错误抛出,对象方法属于对象,只有在被对象调用时才会抛出 定位到了第2个类静态方法问题 3. java web 工程 读取资源文件路径问题通过代码拆分:把简化的代码用多个引用变量逐一拆分,比如 properties.load(Druid.class.getClassLoader().getResourceAsStream("druid.properties"));拆成 ClassLoader classLoader = Druid.class.getClassLoader(); InputStream inputStream = classLoader.getResourceAsStream("druid.properties"); properties.load(inputStream);通过Step Into (F7)调试 (点击要into的方法体) 说明类并没有成功读取到资源文件"druid.properties",而我的druid.properties路径为src/ druid.properties。 从网上看到大神的解释: 第1种类加载器加载资源文件的方式: class.getClassLoader().getResourceAsStream(String name) 默认从==classpath(即“工程根目录/ target/classes”)==中找文件. name必须采用相对于classpath,即当前类package文件的相对路径,不能带"/",否则会抛空指针。 而JVM在自动编译时把 "工程根目录/src/main/ resources "内的文件,拷贝一份到classpath目录下,因此把druid.properties放在 工程根目录/src/main/resources下,编译后,源码中的相对路径“druid.properties”对应的绝对路径就是**“工程根目录/target/classes/druid.properties”** InputStream inputStream = Druid.class.getClassLoader().getResourceAsStream("druid.properties");成功加载资源文件,搞定了这个错误! 补充另外,补充个第二种类加载器加载资源文件的方式: class.getResourceAsStream(String name) , name必须采用以classpath为根目录的绝对路径,绝对路径以"/"作为路径头,所以 InputStream inputStream = Druid.class.getResourceAsStream("/druid.properties"); 参考Java项目读取resources资源文件路径 【IntelliJ IDEA】Debug调试的使用记录 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |