Fitnesse, Fit and Ruby
昨天花了一些时间在这方面上。 Austin问能不能使用Fitnesse,所以试用了一下。
Fitnesse 是一个很优秀的测试工具。acceptance testing。
Fit 同上。
由于官方站点没有给出Ruby 相关的文档,只有Java 和 C#的(貌似),所以我就把安装和运行例子的过程记录了下来,供大家参考:
Due to no documents available for Ruby on "fitnesse" official website, I recorded my steps of installation and running its examples:
(references:
NOTE: guides on these 2 sites don't work and are out-of-date!
http://xprogramming.com/articles/rubyfitnesse/
http://blog.coryfoy.com/2005/12/fitnesse-and-ruby-a-basic-tutorial/
)
1. $sudo gem install fit
2. download the fitnesse.jar file (下载这个文件)
3. java -jar fitnesse.jar -p 8080
现在fitnesse 已经跑起来了。打开 localhost:8080, 发现它就是个wiki.
4. 随便编辑一个页面,末尾加上这句话: (edit anyone page, add this line to the end)
^ArithmeticFixture
5. 保存。刷新。打开这个新页面。 (save & fresh & open this new page)
6. 加入这个内容: (add these line of codes)
!define COMMAND_PATTERN {/usr/bin/ruby -I %p -I /usr/lib/ruby/gems/1.8/gems/fit-1.2/lib /usr/lib/ruby/gems/1.8/gems/fit-1.2/bin/FitServer.rb}
!path "/usr/lib/ruby/gems/1.8/gems/fit-1.2/lib/eg"
!|eg.ArithmeticFixture|
|x|y|+|-|*|/|
|1|1|2|0|1|1|
7. 保存它。然后修改它的属性,把它变成"Test",然后测试,就可以看到结果了。
(now you can turn it to be a fit test, then run it, you will get the expected result)
以下话题对RUBY ON RAILS 展开:
不过让人觉得遗憾的是,fitnesse感觉很一般,除了表格很让人眼前一亮,其他的都不行。比如“不懂编程语言的人也可以写测试”,就是很不现实的东东。 写个 rspec 很难吗?
fitnesse 就是wiki + 单元测试。 这里我说的是“单元测试”,而不是集成测试。更不是像Selenium那样的对浏览器进行自动化测试。
比较简单的测试用例: 1 + 1 = 2. 都可以写。
非常强悍的地方:
1. 表格(Decision Table)的表现力非常丰富。
2. 不必写单元测试(rspec, test-unit)
最典型的几个不足:
1. 输入函数,输出结果只能是基本的数据类型。例如: 数字,字符。不能是复杂对象
2. 不能测试web app. (最关键)
3. 不能测试某些方法:生成PDF, 上传下载, 权限控制等等。
4. 实现代码必须继承 Fit 自带的class, 有的时候还要实现一些奇怪的方法。 是的,咱用wiki 写个 table 就能自动生成单元测试了,但是实现代码乱了。。。 比如:
class ArithmeticFixture < Fit::PrimitiveFixture
def initialize
super
@x = @y = 0
end
def do_rows rows
super(rows.more) # skip column heads
end
def do_cell cell, column_index
case column_index
when 0 then @x = parse_integer(cell);
when 1 then @y = parse_integer(cell);
when 2 then check(cell, parse_integer(cell), @x + @y)
when 3 then check(cell, parse_integer(cell), @x - @y)
when 4 then check(cell, parse_integer(cell), @x * @y)
when 5 then check(cell, parse_integer(cell), @x / @y)
else ignore(cell)
end
end
5. 这个是单元测试,而不是粒度比较大的集成测试(integration test, or gui test . )
6. 对于Ruby的支持很烂。很过时。官方文档居然都没有Ruby的例子。
7. 现有的例子用的都是最简单的数据类型: 计算器,除法,开方等等。复杂的就不支持了,例如一个http response对象。
综上,Fitnesse用来搞个算法的TDD 还行, 要是用来做web app, 还得rspec , test-unit.
最后:不管开发什么,不管用什么工具,只要心里想着“测试驱动”,我们用最基本的test-unit,一样可以写出纯TDD的程序。 :)
分享到:
相关推荐
FitNesse 基于 FIT (Framework for Integrated Test) 构建,将需求分析、测试设计与开发过程紧密结合起来,能够替代传统的需求文档,并具备强大的测试能力。 #### 二、安装与配置 1. **下载与解压**: - 首先下载...
- **继承关系**:夹具类需要继承自`fit.ColumnFixture`。 - **属性声明**:夹具类中需要声明公开的(public)属性来对应表中的列名。例如,`public String firstPart;` 对应于 `|firstpart|`。 - **方法声明**:夹具类...
Fitnesse是一个强大的开源工具,主要用于软件测试的自动化和协作。它结合了Wiki的便捷性和Fit框架的测试能力,提供了一种简洁的方式来定义和执行测试用例。在本文中,我们将深入探讨Fitnesse的学习,特别是如何使用...
基于FIT框架(Framework for Integrated Test),FitNesse提供了一个全面的测试环境,它巧妙地将需求分析、测试设计与实际开发过程紧密联系在一起,从而有效地促进了团队协作和提高了软件质量。 ### FitNesse的核心...
FitNesse是一套软件开发协作工具 FitNesse是帮助大家加强软件开发过程中的协作的工具。能够让客户、测试人员和开发人员了解软件要做成什么样,帮助建议软件最终是否达到了设计初衷。
FitNesse是一个强大的开源工具,主要用于创建和执行可维护的系统测试。它的核心概念是使用简单的文本编辑器创建Wiki页面,这些页面可以包含表格,这些表格可以被解释为测试脚本,与Java或其他语言的定制夹具交互。...
开源测试软件-fitnesse,使用方法自己百度,教程很多
Fitnesse的一个重要特性是它的“Fit表格”(Fit Tables),这是一种特殊的测试语法,用于清晰地表达测试条件和期望。表格中的每一行代表一个测试用例,列则定义输入值、操作和预期输出。这种可视化方式让测试用例的...
而对于C++项目,可以通过将C++代码封装为DLL(动态链接库),然后利用Ruby作为桥梁,通过Fitnesse进行测试,这样实现了对C++代码的自动化测试。 标签"fitnesse"进一步确认了这个压缩包与Fitnesse测试框架相关。 ...
fitnesse-standalone.jar
总结来说,"Getting Fit with .Net"意味着在.NET开发过程中引入Fit和FitNesse,以提高团队协作和测试效率。通过理解并实践Fit的原理和方法,开发者可以更好地理解和满足业务需求,同时提升代码质量,降低维护成本。...
这通常涉及创建一个类,继承自`Fit.NPath.Framework.Fixture`,并在其中实现具体的操作和验证逻辑。例如,对于上述计算器示例,你可能需要为每个“press”和“check”操作创建一个方法,以及一个用于初始化测试状态...
在cmd中Java -jar 输入fitnesse-standalone.jar运行fitnesse工具类,在浏览器中输入http://localhost进入fitnesse界面
fitnesse学习资料:关于fitnesse测试软件的一些整理文档
作为一款基于FIT的测试环境,FitNesse以Wiki的形式存在,允许用户直接创建和编辑页面,从而创建测试套件和进行系统验证。 FitNesse的安装与编译分为两种方式: 1. **预编译的FitNesse.jar安装**: 这种方式简单...
`FitNesse.NET.Starter` 压缩包文件很可能是`.NET FIT` 和 `FitNesse` 的入门套件,包含了一些基础的配置和示例,帮助新用户快速启动他们的测试项目。它可能包括了必要的库、示例测试用例、配置文件以及运行FitNesse...
FitNesse是一个轻量级的、开源的框架,能够帮助开发团队方便的定义验收测试(Acceptance Tests),通过在web页面上简单的输出和预计输出的表格就可实现,并且可以运行这些测试以确定是否通过。
FitNesse作为一种基于Wiki的自动化测试框架,因其灵活性和易用性,在软件开发和测试领域得到了广泛应用。本文介绍了一种基于FitNesse的自动化回归测试工具(Automated Regression Testing Tool, ARTT)的设计与实现...
本书不仅详细介绍了FitNesse的基本概念和使用方法,还提供了在.NET环境中实施测试驱动开发的具体步骤和最佳实践。通过阅读本书,开发者可以更好地理解和掌握如何利用FitNesse来提高.NET项目的质量和效率。
FitNesse是一个开源的软件工具,它结合了Wiki系统与验收测试框架的功能,为软件开发团队提供了一个完整的、用户友好的环境来进行协作和测试。这个工具的独特之处在于它简化了测试过程,使得非程序员(例如业务分析师...