1
如何驗證Foobar#some_method
是否需要一個塊。東西simliar到Foobar.new.respond_to?(:some_method)
測試一個方法是否需要一個塊
class Foobar
def some_method
yield
end
end
爲什麼?
這對測試合同界面很有用。確保我存根的方法有一個不變的API。
方法我試過
mth = Foobar.new.method(:some_method)
mth.parameters
這個返回的參數列表(什麼Rspec的主要用途)。它的工作原理,如果我有一個這樣的參數作爲塊:
def some_method(&blk)
end
但是,如果方法使用yield
相反,我什麼都沒有從#parameters
。
這是爲了添加規格,以確保界面與醜陋的外部世界。所以我知道如何使用一種方法。但是,如果有API更改,我希望規範失敗。
謝謝。忘了提到這個作品,但我需要在我正在使用的庫中存儲一些方法。如果我不做任何剔除,特別是考慮到庫中的實現細節,那將會很好。任何其他的選擇? –