使用 Grester 简化 Java 应用程序的 JUnit 测试
2010-01-11 00:00:00 来源:WEB开发网在 CommandExecutor 类中,executeCommand() 方法将调用同一个类 processStream() 中的受保护方法。在 processStream() 方法中,将在 while() 循环中创建一个新 StringBuffer 实例并且处理 InputStream。清单 4 显示了测试类,还显示了测试的主要部分。
清单 4. Maven 项目中的示例测试类 package com.prometheus.run;
import com.prometheus.run.CommandExecutor;
...
public class CommandExecutorTest extends TestCase {
...
public class MockProcess extends Process{
...
public InputStream getInputStream(){
String source= "This is a mock string";
return new ByteArrayInputStream(source.getBytes());
}
public OutputStream getOutputStream(){
return null;
}
public int waitFor(){
return 1;
}
}
public void testExecuteCommmand(){
String expected = "This is a mock string";
String actual = commandExecutor.executeCommand("lsmod");
assertEquals(expected, actual);
...
}
}
测试类 CommandExecutorTest 相对简单。虽然给出的详细信息不多,但是此单元测试的基本目标是在测试时通过类的 performCommandExecution() 方法调用来模拟 Process 类的行为。
更多精彩
赞助商链接