正如您已经在项目中包含junit,您必须考虑以下结构进行单元测试。
对于要测试的每个类,您将拥有一个相关类来测试它,因此MathTest将对Math类进行单元测试
然后,假设您修改代码以使用2个方法,一个用于读取文件,一个用于解析InputStream,另一个用于showResults。
这是我将使用的接口,但只是为了知道方法声明。
public interface MyCodeToBeTested {
List parseFile(final String path);
void processLines(List);
}想象一下,您使用名为ImplementedClass的类实现此接口。
所以你可以有一个Junit类来测试每个寻找失败的方法。
import junit.framework.Assert;
import org.junit.Test;
public class Tester {
@Test
public void testReadFile() {
ImplementedClass myclass = new ImplementedClass();
List lines = myclass.parseFile("mytestfile1.txt");
Assert.assertEquals(3, lines.size());
Assert.assertEquals("this is the first line of the file", lines.get(0));
}
}通过此测试,您可以检查解析文件是否正常工作,有时您通过单元测试对读取文件有信心,您可以移动测试processLines方法而无需处理文件。
@Test
public void testProcess() {
ImplementedClass myclass = new ImplementedClass();
List lines = initializeLines();//initialize your lines
myclass.processLines(lines);
//Assert here myclass results
}