Java 如何在JUNIT中执行字符串非空检查
我正在为下面的代码编写单元测试。但下面几行代码的覆盖范围缺失。我不知道怎样才能涵盖以下内容。我的研究没有帮助Java 如何在JUNIT中执行字符串非空检查,java,unit-testing,junit,mockito,Java,Unit Testing,Junit,Mockito,我正在为下面的代码编写单元测试。但下面几行代码的覆盖范围缺失。我不知道怎样才能涵盖以下内容。我的研究没有帮助 public DetailsResponse mapRow(ResultSet resultSet, int num) throws SQLException { DetailsResponse DetailsResponse = new DetailsResponse(); String[] responseElements = null; String res
public DetailsResponse mapRow(ResultSet resultSet, int num) throws SQLException {
DetailsResponse DetailsResponse = new DetailsResponse();
String[] responseElements = null;
String response = resultSet.getString(1);
//coverage missing for below line
if (response != null && response.indexOf(",") != -1) {
responseElements = response.split(",");
}
//coverage missing for below line
if (responseElements != null && responseElements.length > 0) {
//coverage missing for below line
String id = StringUtils.isNotBlank(responseElements[0]) ? responseElements[0].replace("(", "") : "";
覆盖范围中缺少注释行。如何测试它们?由于这是一个公共方法,并且您正在尝试编写单元测试,而不是集成测试,因此您可以简单地设置ResultSet对象。在执行此操作时,可以设置对象,以便覆盖这两个条件
@Test
public void test(){
// SETUP
ResultSet resultSet = // setup ResultSet to return what looks like a comma separated list.
// TEST
DetailsResponse out = service. mapRow(resultSet, someNum);
// VERIFY / ASSERT
// some assert(s) on out
}
由于这是一个公共方法,并且您正在尝试编写单元测试,而不是集成测试,因此您可以简单地设置ResultSet对象。在执行此操作时,可以设置对象,以便覆盖这两个条件
@Test
public void test(){
// SETUP
ResultSet resultSet = // setup ResultSet to return what looks like a comma separated list.
// TEST
DetailsResponse out = service. mapRow(resultSet, someNum);
// VERIFY / ASSERT
// some assert(s) on out
}
您需要模拟resultSet以返回不同的值,以便可以测试所有选项:
response==null
,response
包含逗号,response不包含逗号,response以逗号开头您需要模拟resultSet以返回不同的值,以便可以测试所有选项:response==null
,响应
包含逗号,响应不包含逗号,响应以逗号开头