`
sg552
  • 浏览: 621273 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
47437293-94b9-3b04-9152-8971c7580049
白手起家学习使用Flex
浏览量:18740
社区版块
存档分类
最新评论

Fitnesse & Fit 和 Ruby。

阅读更多
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的程序。 :)
1
2
分享到:
评论

相关推荐

    fitnesse 入门

    FitNesse 基于 FIT (Framework for Integrated Test) 构建,将需求分析、测试设计与开发过程紧密结合起来,能够替代传统的需求文档,并具备强大的测试能力。 #### 二、安装与配置 1. **下载与解压**: - 首先下载...

    FitNesse 常用Fixture总结

    - **继承关系**:夹具类需要继承自`fit.ColumnFixture`。 - **属性声明**:夹具类中需要声明公开的(public)属性来对应表中的列名。例如,`public String firstPart;` 对应于 `|firstpart|`。 - **方法声明**:夹具类...

    fitnesse学习(整理版)

    Fitnesse是一个强大的开源工具,主要用于软件测试的自动化和协作。它结合了Wiki的便捷性和Fit框架的测试能力,提供了一种简洁的方式来定义和执行测试用例。在本文中,我们将深入探讨Fitnesse的学习,特别是如何使用...

    fitnesse帮助文档

    基于FIT框架(Framework for Integrated Test),FitNesse提供了一个全面的测试环境,它巧妙地将需求分析、测试设计与实际开发过程紧密联系在一起,从而有效地促进了团队协作和提高了软件质量。 ### FitNesse的核心...

    Fitnesse开发协作工具

    FitNesse是一套软件开发协作工具 FitNesse是帮助大家加强软件开发过程中的协作的工具。能够让客户、测试人员和开发人员了解软件要做成什么样,帮助建议软件最终是否达到了设计初衷。

    FitNesse帮助文档

    FitNesse是一个强大的开源工具,主要用于创建和执行可维护的系统测试。它的核心概念是使用简单的文本编辑器创建Wiki页面,这些页面可以包含表格,这些表格可以被解释为测试脚本,与Java或其他语言的定制夹具交互。...

    开源测试软件-fitnesse

    开源测试软件-fitnesse,使用方法自己百度,教程很多

    fitnesse自动化框架

    Fitnesse的一个重要特性是它的“Fit表格”(Fit Tables),这是一种特殊的测试语法,用于清晰地表达测试条件和期望。表格中的每一行代表一个测试用例,列则定义输入值、操作和预期输出。这种可视化方式让测试用例的...

    fitnesse开源包

    而对于C++项目,可以通过将C++代码封装为DLL(动态链接库),然后利用Ruby作为桥梁,通过Fitnesse进行测试,这样实现了对C++代码的自动化测试。 标签"fitnesse"进一步确认了这个压缩包与Fitnesse测试框架相关。 ...

    fitnesse-standalone

    fitnesse-standalone.jar

    Getting Fit with .Net

    总结来说,"Getting Fit with .Net"意味着在.NET开发过程中引入Fit和FitNesse,以提高团队协作和测试效率。通过理解并实践Fit的原理和方法,开发者可以更好地理解和满足业务需求,同时提升代码质量,降低维护成本。...

    HowTo Fitnesse ActionFixture in C#

    这通常涉及创建一个类,继承自`Fit.NPath.Framework.Fixture`,并在其中实现具体的操作和验证逻辑。例如,对于上述计算器示例,你可能需要为每个“press”和“check”操作创建一个方法,以及一个用于初始化测试状态...

    fitnesse-standalone.jar

    在cmd中Java -jar 输入fitnesse-standalone.jar运行fitnesse工具类,在浏览器中输入http://localhost进入fitnesse界面

    fitnesse学习资料

    fitnesse学习资料:关于fitnesse测试软件的一些整理文档

    FitNesse安装与编译[参考].pdf

    作为一款基于FIT的测试环境,FitNesse以Wiki的形式存在,允许用户直接创建和编辑页面,从而创建测试套件和进行系统验证。 FitNesse的安装与编译分为两种方式: 1. **预编译的FitNesse.jar安装**: 这种方式简单...

    .NET FIT, FitLibrary for FitNesse, HTML-开源

    `FitNesse.NET.Starter` 压缩包文件很可能是`.NET FIT` 和 `FitNesse` 的入门套件,包含了一些基础的配置和示例,帮助新用户快速启动他们的测试项目。它可能包括了必要的库、示例测试用例、配置文件以及运行FitNesse...

    fitnesse_standalone.jar

    FitNesse是一个轻量级的、开源的框架,能够帮助开发团队方便的定义验收测试(Acceptance Tests),通过在web页面上简单的输出和预计输出的表格就可实现,并且可以运行这些测试以确定是否通过。

    基于FitNesse的自动化回归测试工具的设计与实现

    FitNesse作为一种基于Wiki的自动化测试框架,因其灵活性和易用性,在软件开发和测试领域得到了广泛应用。本文介绍了一种基于FitNesse的自动化回归测试工具(Automated Regression Testing Tool, ARTT)的设计与实现...

    Test Driven .NET Development with FitNesse

    本书不仅详细介绍了FitNesse的基本概念和使用方法,还提供了在.NET环境中实施测试驱动开发的具体步骤和最佳实践。通过阅读本书,开发者可以更好地理解和掌握如何利用FitNesse来提高.NET项目的质量和效率。

    FitNesse-开源

    FitNesse是一个开源的软件工具,它结合了Wiki系统与验收测试框架的功能,为软件开发团队提供了一个完整的、用户友好的环境来进行协作和测试。这个工具的独特之处在于它简化了测试过程,使得非程序员(例如业务分析师...

Global site tag (gtag.js) - Google Analytics