它是不好的做法,增加一个return语句用于测试方法的唯一目的,没有实际的代码本身使用它吗?
作为一个例子的情况下,我测试的读出方法,其后面是一系列的,最终产生具有吸收了它在读取文件的线的属性的对象的方法。
从我的理解,读取方法可以使用的Mockito,而无需添加return语句进行测试。或者一个可以测试另一种方法(readPerLine
)是否被调用,但我还没有找到一个合适的测试程序来做到这一点。这两个选项可能意味着,如果正确的编码过程中,如果是的话请让我知道我的一般问题是不相关的。
不过目前以下两个选项似乎是最简单的方式来测试(部分)的读法:
我目前写的读取方法的一个例子的代码:
public void readFile(String filename) {
FileReader reader;
BufferedReader br;
String line = null;
try {
br = new BufferedReader(new FileReader(filename));
while ((line = br.readLine()) != null) {
readPerLine(line); //converts line into properties for an object.
}
br.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
所以我还没有解决下面的困境;
我建议,而不是添加return语句的方法,以使测试,而返工,分离一部分的功能的方法。
我认为这个问题是在这里:
readPerLine(line); //converts line into properties for an object.
也许你正在做的这个方法太多了。你可以将其分为几种不同的方法,例如:
如果你这样做,你可以检查每一步的功能,并为每个测试。当涉及到测试的主要方法readFile(String filename)
,您就可以使用Mokito检查每个方法被调用使用正确的参数