[英]Testing a rake task with passed parameters in rspec
在rspec中,我想測試一個rake任務,傳入一些參數,所以在命令行中你會運行這個:
rake commissions:create_price_points options=1,2,3
在rake任務中我使用ENV ['options']。
在我的rspec我有
rake = get_rake_environment(RAKE_FILE)
rake["commissions:create_price_points"].invoke(options=1,2,3)
這運行rake很好,但是這和我用invoke和execute做的其他嘗試都沒有將選項傳遞給它。 只是想知道是否有人對如何做到這一點有任何見解。 謝謝!
傳遞給invoke
方法的參數與rake命令行中傳遞的參數不同。 在RSpec中,它是Ruby,表達式options=1,2,3
將數組[1,2,3]
分配給局部變量options
並傳遞該數組以進行invoke
。 當被invoke
方法接收時,該數組被視為rake任務的形式參數。 (有關此方法的更多信息,請參閱https://stackoverflow.com/a/825832/1008891 。)
由於您的rake任務期望設置環境變量options
,因此您需要在調用它之前設置它,如:
ENV['options'] = '1,2,3'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.