如何使用return语句进行基本路径覆盖测试?

时间:2015-04-23 18:37:55

标签: java testing

以下代码执行基本路径覆盖的测试集是什么?

/**
 * Attempt to rename a tag. newName must not be null.
 * Returns true/false
*/
public boolean renameTag(String oldName, String newName) { 
if(oldName.equals(newName))
       return false;

Tag tag = tags.get(oldName);
if(tag == null)
       return false;

if(tags.containsKey(newName))
       return false;

tags.remove(oldName);
tag.setName(newName);
tags.put(newName, tag);
return true;
}

从我的understanding基础路径覆盖范围应该是:

TTT
FTT
TFT
TTF

以下是我目前的测试集:

{{oldName = "a", newName = "a", tags = {{"a", null}}},  // TTT
 {oldName = "a", newName = "b", tags = {{"b", object}}}, // FTT  
 {oldName = "a", newName = "a", tags = {{"a", object}}} // TFT
 {oldName = "a", newName = "a", tags = {}} // TTF}

但是这在这个例子中不起作用,因为条件为真后的返回。我的测试只测试第一个和第二个条件,第三个条件永远不会是测试。

我的测试集应该如何获得基础路径测试但是使用最小的测试集?

1 个答案:

答案 0 :(得分:1)

您的测试用例是错误的。这就是我的猜测。

{{oldName = "a", newName = "a", tags = {{"a", null}}},  //For 1st if
 {oldName = "a", newName = "b", tags = {{"b", object}}}, // for second if 
 {oldName = "a", newName = "b", tags = {{"a", object}, {"b", object}} // for third if