测试 在看 cancan 的源代码,测试里面有点东西看不懂

pacingwang · 2013年05月22日 · 最后由 pacingwang 回复于 2013年05月22日 · 2630 次阅读

代码在这里

require 'rubygems/test_case'
require 'rubygems'

class TestConfig < Gem::TestCase

  def test_datadir
    _, err = capture_io do
      datadir = RbConfig::CONFIG['datadir']
      assert_equal "#{datadir}/xyz", RbConfig.datadir('xyz')
    end

    assert_match(/deprecate/, err)
  end

end

问题: 1 err 之前的 符号(显示不了)是什么意思? 2 capture_io 之后的 block 是什么作用?

求助

1 的话 应该是返回两个值,但是第一个值不用,所以就用下划线_了。 2 block 就是个 block 啊

@Tony612 block 的作用是什么

#2 楼 @pacingwang 会把它传到那个函数里去执行,有比如作用域的作用,或者是延迟执行之类的等,很强大。建议楼主多了解了解 ruby 基础~

@Tony612 ,3ks。我看过两遍 ruby 元编程,基础的书也看了好多遍了,可能是看的源代码太少了,不是很熟练。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号