看https://github.com/rails/rails/commit/1408b942d9c2c131a1cdcab97f49d74ce84dae38因此,我不能嘲笑是用C
實現的方法我想嘲笑的意思,你可以模擬任何方法。不知道用C實現的方法不能被嘲笑。爲什麼?
我想這意味着我真的不明白嘲笑的作品。
看https://github.com/rails/rails/commit/1408b942d9c2c131a1cdcab97f49d74ce84dae38因此,我不能嘲笑是用C
實現的方法我想嘲笑的意思,你可以模擬任何方法。不知道用C實現的方法不能被嘲笑。爲什麼?
我想這意味着我真的不明白嘲笑的作品。
這與C中的嘲諷方法無關,僅與方法依賴有關。
如果您仔細閱讀,嘲諷Time.now
不再對Date.today
產生影響。
在Ruby 1.8.7中,Date.today
在Ruby中實現,並且調用了Time.now
。在較新的Ruby中,Date.today
使用C語言,不會調用Time.now
。
不知道是什麼了,因爲雙紅寶石https://github.com/btakita/rr似乎能夠這樣做的:
require 'rubygems'
require 'test/unit'
require 'rr'
extend RR::Adapters::RRMethods
class MockTest < Test::Unit::TestCase
include RR::Adapters::TestUnit
def test_can_mock_c_method
a = [1,5,3]
mock(a).sort{'foo!'}
assert_equal 'foo!', a.sort
end
end
這是使用MRI 1.8.7,而據我所知,可枚舉#排序和陣列#排序在C中實現。如果我錯了,請糾正我。