试用 FIT 和 JUnit 进行需求测试工作

发表于:2008-4-17 15:40

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

用装备进行装配

        最简单的表和装备组合,也是 FIT 中最常用的,是一个简单的列表格,其中的列映射到预期过程的输入和输出。对应的装备类型是 ColumnFixture。

        如果再次查看 清单 1,将注意到 TrendIndicator 类扩展了 ColumnFixture,而且也与图 3 对应。请注意在图 3 中,第一行的名称匹配完全限定名称(test.com.acme.fit.impl.TrendIndicator)。下一行有三列。头两个单元格的值匹配 TrendIndicator 类的 public 实例成员(value1 和 value2),最后一个单元格的值只匹配 TrendIndicator 中的方法(trend)。

        现在来看清单 1 中的 trend 方法。它返回一个 String 值。可以猜测得到,对于表中每个剩下的行,FIT 都会替换值并比较结果。在这个示例中,有三个 “数据” 行,所以 FIT 运行 TrendIndicator 装备三次。第一次,value1 被设置成 84.0,value2 设置成 71.2。然后 FIT 调用 trend 方法,并把从方法得到的值与表中的值比较,应当是 “decreasing”。

        通过这种方式,FIT 用装备代码测试 Trender 类,每次 FIT 执行 trend 方法时,都执行类的 determineTrend 方法。当代码测试完成时,FIT 生成如图 4 所示的报告:


        图 4. FIT 报告 trend 测试的结果

ee

        trend 列单元格的绿色表明测试通过(例如,FIT 设置 value1 为 84.0,value2 为 71.2,调用 trend 得到返回值 “decreasing”)。查看 FIT 运行

        可以通过命令行,用 Ant 任务并通过 Maven 调用 FIT,从而简单地把 FIT 测试插入构建过程。因为自动进行 FIT 测试,就像 JUnit 测试一样,所以也可以定期运行它们,例如在持续集成系统中。

        最简单的命令行运行器,如清单 2 所示,是 FIT 的 FolderRunner,它接受两个参数 —— 一个是 FIT 表格的位置,一个是结果写入的位置。不要忘记配置类路径!

清单 2. FIT 的命令行

%>java fit.runner.FolderRunner ./test/fit ./target/

        FIT 通过插件,还可以很好地与 Maven 一起工作,如清单 3 所示。只要下载插件,运行 fit:fit 命令,就 OK 了!(请参阅 参考资料 获得 Maven 插件。)


清单 3. Maven 得到 FIT

C:\dev\proj\edoa>maven fit:fit
 __  __
|  \/  |__ _Apache__ ___
| |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
|_|  |_\__,_|\_/\___|_||_|  v. 1.0.2
build:start:
java:prepare-filesystem:
java:compile:
    [echo] Compiling to C:\dev\proj\edoa/target/classes
java:jar-resources:
test:prepare-filesystem:
test:test-resources:
test:compile:
fit:fit:
    [java] 2 right, 0 wrong, 0 ignored, 0 exceptions
BUILD SUCCESSFUL
Total time: 4 seconds
Finished at: Thu Feb 02 17:19:30 EST 2006

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号