首先,我使用的是Interactor Gem。 (你應該看看,如果你有沒有很酷LIB)如何使用Minitest測試Interactor Organizer
比方說,我有一個交互器::主辦單位如下:
class InitiateImport
include Interactor::Organizer
organize CreateImport, QueueImport
end
而且我也有兩個交互件爲如下:
class CreateImport
include Interactor
def call
import = Import.create()
if import
context.import = import
else
context.fail!(message: 'import failed!')
end
end
end
和
class QueueImport
include Interactor
def call
unless QueueHandler.perform_later(context.import.id)
context.fail!(message: 'Queue broke!')
end
end
end
大問題 - 如何 - 使用MINITEST - 測試organize
正在呼籲InitiateImport
與參數[CreateImport, QueueImport]
assert_send
會讓我驗證organize
被調用,但它不會讓我確認我通過什麼參數它。事情是這樣的:
class InitiateImportTest < Minitest::Test
def test_organize_called
InitiateImport.new(file: file)
assert_send([InitiateImport, :organize, [CreateImport, QueueImport]])
end
end
我發現this問題/從近3年前的答案,但它並沒有爲我提供太多的清晰度。也許它在那裏,我只是想念一些東西?
我也意識到,我可以只有call
組織者與有效的參數數據,以便它通過,我驗證從那裏的輸出,但是我已經有這兩個測試類,我基本上只是行使相同的功能兩次。如果可能,我真的很想驗證方法調用和參數。
任何幫助或建議將不勝感激。
嘿!我認爲'間諜'可能會幫助你實現你正在尋找的東西,檢查我的其他[答案](http://stackoverflow.com/questions/28813062/idiomatically-mock-openuri-open-uri-with-minitest/28878374 #28878374)。希望有所幫助! – 2015-04-02 12:54:53
謝謝!我會研究並報告。 – jamesconant 2015-04-02 12:57:23
是啊......這很長時間你應該關注的東西在第一個代碼清單中用數字'(2)'和'(3)'標記。 – 2015-04-02 13:00:10