使用Grester简化Java应用程序的JUnit测试 - 编程入门网
nputStream(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 类的行为。 必须注意的是,要让 Grester 成功运行,项目必须编译代码源文件和测试源文件并成功运行任意一个测试和所有测试(注:由于这个原因,test-compile Maven 阶段将标记允许 Grester 运行且不能提前运行的阶段)。下一步是简单地在项目的 pom.xml 文件中附加 Grester 的 Maven 插件配置。此配置放在 pom.xml 文件的默认构建部分中或任何常规的 Maven 配置文件中。 把 Grester 与项目联系在一起 清单 5 显示了放在示例项目的 pom.xml 文件中的 Grester 插件的示例配置。注意,groupId 要对应于 org.apache.Maven.plugins 并且版本应该是最新的 Grester 插件:V0.3。 清单 5. 示例项目中的 Grester 插件配置
使用Grester简化Java应用程序的JUnit测试(9)时间:2012-03-17 IBM Michael Nyika注意,项目已被设为在 Maven 的测试阶段运行 Grester 的 inspect 目标。codeSources 将指向包含测试类 CommandExecutorTest 的源代码的目录。它可以像简单地指向实际类 CommandExecutor 一样排除文件扩展名。在 Grester 附带的 README.txt 文件中提到了扩展名 .Groovy,但是应当注意的是,目前没有对 Grester 的支持。 从 V0.3 alpha 开始,可以在所有有效的 Maven 生命周期阶段中作为插件执行的 Grester 有两个主要目标(使用时全小写): inspect —— 这是 Grester 的主要目标,通常在测试阶段(虽然严格来说,它可以是测试编译阶段之后的任意阶段)执行。Grester 将通过 pom.xml 文件中列出的依赖关系创建一个可变的 Java 类路径并把新类路径提供给 Jester。 help —— 此目标主要用于对正确插件语法和结构的参考,可以在命令行中输入 mvn grester:help 单独执行。 对示例项目运行 Grester 运行简单的 mvn clean install 命令(或者包含 inspect 目标使用的特定状态的所有生命周期命令)将生成如下所示的输出。 图 10. Jester 在处理示例代码 通过进一步检查,您可以看到初始类文件 CommandExecutor 中 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |