【发布时间】:2015-01-12 10:04:16
【问题描述】:
我正在尝试测试一个使用 BufferedReader 实例的类中的方法:
public class ClassTotest {
private BufferedReader reader;
public boolean methodToTest(){
while (reader.ready()){
reader.readLine();
}
more code
}
}
在我的测试类中,我使用反射初始化了阅读器实例:
class MyTest{
@Test
public void test(){
ClassTotest testClass = new ClassTotest();
Field reader = ClassTotest.class
.getDeclaredField("reader");
reader.setAccessible(true);
StringReader stringReader = new StringReader("testString");
BufferedReader readerToSet = new BufferedReader(stringReader);
reader.set(testClass, readerToSet);
testClass.methodToTest();
}
它进入方法,我可以看到读取器对象已初始化,但当询问是否准备好()时它总是返回 true。所以它进入了一个无限循环。
如何初始化阅读器以避免这种无限循环?
【问题讨论】:
-
很遗憾,我无法更改必须测试的类中的代码。
标签: java unit-testing reflection bufferedreader