我在下面的代码中为他编写单元测试。但是以下代码行缺少相关内容。我不确定如何涵盖以下几行。我的研究没有帮助。
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("(", "") : "";
覆盖范围内缺少注释行。如何测试它们?
答案 0 :(得分:2)
由于这是一个公共方法,并且您尝试编写单元测试而不是集成测试,因此可以简单地设置一个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
}