我有一個方法,返回給定的符號的價格,我正在爲該方法寫一個測試。Ruby Metaprogramming
這是我的測試
def setup
@asset = NetAssetValue.new
end
def test_retrieve_price_for_symbol_YHOO
assert_equal(33.987, @asset.retrieve_price_for_a_symbol('YHOO'))
end
def test_retrive_price_for_YHOO
def self.retrieve_price_for_a_symbol(symbol)
33.77
end
assert_equal(33.97, @asset.retrieve_price_for_a_symbol('YHOO'))
end
這是我的方法。
def retrieve_price_for_a_symbol(symbol)
symbol_price = { "YHOO" => 33.987, "UPS" => 35.345, "T" => 80.90 }
raise Exception if(symbol_price[symbol].nil?)
symbol_price[symbol]
end
我試圖通過編寫測試類相同的方法來嘲笑retrieve_price_for_a_symbol
方法,但是當我把它稱爲,呼叫是發生在方法的主類不是在測試類。
如何從測試中將該方法添加到元類中,以及如何調用它?請幫忙。
爲什麼要模擬您明確測試的方法?如果你嘲笑這個方法,你不會測試它的實現,這會導致測試過時。 – koffeinfrei