Ruby 编程:从单例方法到对象模型的深入探索
1. 测试中的变量赋值与类禁忌挑战
在测试中,可以使用 class_eval 或 instance_eval 为私有 @time_class 变量赋值。这两个方法都能改变 self ,示例代码如下:
class FakeTime
def self.now; 'Mon Apr 06 12:15:50'; end
end
require 'test/unit'
class TestLoan < Test::Unit::TestCase
def test_conversion_to_string
Loan.instance_eval { @time_class = FakeTime }
loan = Loan.new('War and Peace')
assert_equal 'WAR AND PEACE loaned on Mon Apr 06 12:15:50', loan.to_s
end
end
接着有一个类禁忌挑战,要求在不使用 class 关键字的情况下编写代码实现与以下代码相同的效果:
class MyClass < Array
def my_method
'Hello!'
end
end
解决方案是利用 Cla
超级会员免费看
订阅专栏 解锁全文
9

被折叠的 条评论
为什么被折叠?



