+ Ruby 1.9 用新的单元测试框架MiniTest替换了1.8版本中的Test::Unit测试框架,同Test::Unit相比,MiniTest保留了其核心框架,但删除了一些附加的功能,比如Testcase Runner, 图形界面。为了和Test::Unit兼容,MiniTest还提供了一个适配层来将原有Test::Unit的接口影射到新的框架,这样原有1.8的测试用例能够不需要修改就能够直接运行。
但我在升级的时候还是遇到了问题。下面是测试代码,保存为文件test.rb:
require 'test/unit'
class Test_Main < Test::Unit::TestCase
def test1
puts "ARGV[0] = %s" % ARGV[0]
puts "ARGV[1] = %s" % ARGV[1]
puts "ARGV[2] = %s" % ARGV[2]
end
end
在Ruby 1.8运行:
ruby ./test.rb -- a b c
Loaded suite ./test
Started
ARGV[0] = a
ARGV[1] = b
ARGV[2] = c
在Ruby 1.9运行:
ruby ./test.rb -- a b c
Loaded suite ./test
Started
ARGV[0] = --
ARGV[1] = a
ARGV[2] = b
从运行结果可以看到新的测试框架在解析参数的时候没有过滤掉--,这个导致测试用例在解析参数的时候出错。
解决方法:
安装test-unit Gem恢复使用Unit::Test测试框架。
+ 在Ruby 1.8, instance_variables方法会返回所有成员变量名,例如:
irb(main):003:0> class A
irb(main):004:1> def initialize
irb(main):005:2> @a = 1
irb(main):006:2> end
irb(main):007:1> end
=> nil
irb(main):008:0> a = A.new
=> #<A:0xb7c08980 @a=1>
irb(main):009:0> a.instance_variables
=> ["@a"]
在Ruby 1.9, instance_variables会返回所有成员变量Symbol名,例如:
irb(main):001:0> class A
irb(main):002:1> def initialize
irb(main):003:2> @a = 1
irb(main):004:2> end
irb(main):005:1> end
=> nil
irb(main):006:0> a = A.new
=> #<A:0x0000001754caf0 @a=1>
irb(main):007:0> a.instance_variables
=> [:@a]
+ Array 对象的to_s方法会返回不同格式的字符串
Ruby 1.8:
irb(main):001:0> [1,2,3].to_s
=> "123"
Ruby 1.9:
irb(main):001:0> [1,2,3].to_s
=> "[1, 2, 3]"
分享到:
相关推荐
Programming Ruby 1.9 (3rd edition)和源码
Programming Ruby 2.0 1.9 pdf
NULL 博文链接:https://hlee.iteye.com/blog/599644
Programming Ruby 1.9 The Pragmatic Programmers' Guide -- Ruby 编程的圣经教程。此版本涵盖最新的Ruby 1.9
Programming Ruby 1.9 3rd edition.Cover ruby 1.9.2, downloaded from pragmatic bool shelf, please enjoy.
Programming Ruby 1.9
This book is the only complete reference for both Ruby 1.9 and Ruby 2.0, the very latest version of Ruby. 2013 marks the 20th anniversary of the Ruby language. We’re proud that throughout its history...
ruby 1.9上的轻量级网络开发框架,提供generator!
[Pragmatic Bookshelf] Ruby 1.9 & 2.0 编程 (英文版) [Pragmatic Bookshelf] Programming Ruby 1.9 & 2.0 The Pragmatic Programmers' Guide 4th Edition (E-Book) ☆ 出版信息:☆ [作者信息] Dave Thomas , ...
一些Ruby程序员将Ruby 1.9的发布看做是迈入Ruby新版本的标志性事件,但他们却发现在1.8版本和1.9版本语言之间的刻意不兼容性会导致原有Ruby代码无法工作。真正的问题是,Ruby 1.9.0发布的原因以及其与Ruby1.8之间的...
2009年的新书--Programming Ruby 1.9
ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1
ruby笔记3ruby笔记3ruby笔记3ruby笔记3ruby笔记3ruby笔记3
最新的ruby 教程 2009 年 ruby 已经发展到了1.9 2.0要到2010年了
学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及...
ruby初学笔记ruby初学笔记ruby初学笔记ruby初学笔记ruby初学笔记
ruby笔记2ruby笔记2ruby笔记2ruby笔记2ruby笔记2
Programming Ruby 1.9 3rd Edition – FreePdfBook
2、ruby 1.9正式支持内核多线程机制,可以大大提高ruby作为服务端程序的并发处理能力 3、ruby 1.9还引入了纤程这样的多任务并发处理机制,提供了轻量级并发处理能力。 等等。ruby 1.9.1 的下载地址是:ftp://ftp....