快速业务通道

使用Eclipse插件Ruby Development Tools - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
论会上,软件开发思想家 Relevance 公司的 Stuart Halloway 指 出,“在 5 年内,我们将看到编译成为一种比较弱的单元测试形式。”单元测试检验代码是 否做了开发人员希望它做的事儿,而不只是对类型进行拼写检查。

既然单元测试在 Ruby 环境中 如此重要,那么当然希望 RDT 可以使运行单元测试更容易。它确实做到了。单元测试已经包含在 Ruby 中,所以不需要下载任何额外的扩展代码。Ruby 库包含一个 TestCase 类和 TestSuite 的概念。可以像 创建其他 Ruby 类一样创建单元测试,这需要对 Test::Unit::TestCase 进行子类化。清单 1 是一个称 为 Employee 的示例类。

使用Eclipse插件Ruby Development Tools(7)

时间:2011-10-21 IBM Neal Ford

清单 1. Employee 类

class Employee
 def initialize(name, salary, hire_year)
  @name = name
  @salary = salary
  @hire_year = hire_year
 end
 
 attr_reader :name, :salary, :hire_year
 def raise_salary_by(perc)
  @salary += (@salary * (perc * 0.01))
 end
 
 def to_s
  "Name is #{@name}, salary is #{@salary}, " +
  "hire year is #{@hire_year}"
 end
 
end

对应的单元测试是:

清单 2. Employee 类的单元测试

require 

''test/unit/testcase''
require ''test/unit/autorunner''
require ''hr''
class TestEmployee < Test::Unit::TestCase
 @@Test_Salary = 2500
 def setup
  @emp = Employee.new("Homer", @@Test_Salary, 2003)
 end
 def test_raise_salary
  @emp.raise_salary_by(10)
  expected = (@@Test_Salary * 0.10) + @@Test_Salary
  assert( expected == @emp.salary)
 end
end

要运行这个单元测试,应该为单元测试类创建一个 Test::Unit 类型的 Run 配置。

图 12. RDT 包含 Test::Unit Run 配置

使用Eclipse插件Ruby Development Tools - 编程入门网

使用Eclipse插件Ruby Development Tools(8)

时间:2011-10-21 IBM Neal Ford

在运行这个测试时 ,可以获得与 Java 单元测试相同的支持元素,包括左下角与 JUnit 相似的面板。

图 13. 在 IDE 中运行的单元测试示例

使用Eclipse插件Ruby Development Tools - 编程入门网

在 Ruby 中还可以 创建 TestSuites。TestSuites 是定义套件方法的 Ruby 类,这个方法返回 TestSuite。TestSuite 由在 每个 TestCases 中自动定义的套件组成。清单 3 是两个类的 TestSuite 示例。

清单 3. 两个类 的 TestSuite 示例

require ''test/unit/testsuite''
require ''test/unit/ui/tk/testrunner''
require ''test/unit/ui/console/testrunner''
require ''TestEmployee''
require ''TestManager''
class TestSuite_AllTests
  def self.suite
    suite = Test::Unit::TestSuite.new("HR Tests")
    suite << TestEmployee.suite
    suite << TestManager.suite
    return suite
  end
end
#Test::Unit::UI::Tk::TestRunner.run(TestSuite_AllTests)
Test::Unit::UI::Console::TestRunner.run(TestSuite_AllTests)

使用Eclipse插件Ruby Development Tools(9)

时间:2011-10-21 IBM Neal Ford

与前面运行单一 TestCase 的例子不同,套件作为单独的应用程序运行。Ruby 有两种显示 TestSuite 结果的方法。第一种是 Console Test Runner,它在控制台输出结果。第二种是 Tk TestRunner,它创建一个对话框来显示测试 结果。Tk TestSuite 对话框见图 14。

图 14. 图形化的 TestSuite 对话框

使用Eclipse插件Ruby Development Tools - 编程入门网

未来的发展

RDT 的当前版本是 0.50。它的开发人员正在为下一个版本 0.60 而努力。下一个版本中计划的改 进包括:

代码折叠 —— 可以将类和方法的代

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号