如何为数据库连接语句编写测试用例?空指针异常排查与修复
排查数据库连接测试中的NullPointerException问题
错误原因
你的测试代码只mock了yamlConfig.getDatabase().get(Constants.XXX)的返回值,但没有对yamlConfig.getDatabase()方法进行mock,导致运行时调用getDatabase()返回null,后续调用get()方法时触发NullPointerException。
另外也要确认yamlConfig本身是否是正确初始化的Mock对象,如果yamlConfig为null,同样会触发NPE。
解决方法
- 先为
yamlConfig.getDatabase()返回的对象创建Mock实例,并指定yamlConfig.getDatabase()的返回值:
// 替换为实际的Database类名 Database mockDbConfig = mock(Database.class); when(yamlConfig.getDatabase()).thenReturn(mockDbConfig);
- 再针对这个Mock的Database对象,设置
get()方法的返回值:
when(mockDbConfig.get(Constants.URL)).thenReturn("url"); when(mockDbConfig.get(Constants.USERNAME)).thenReturn("user"); when(mockDbConfig.get(Constants.PASSWORD)).thenReturn("pass");
- 额外检查:确保
yamlConfig本身是通过mock(YamlConfig.class)或者@Mock注解初始化的Mock实例,而非null。
内容的提问来源于stack exchange,提问作者Sai Mahesh
相关产品推荐
相关产品推荐

