簡體   English   中英

在rspec中使用傳遞的參數測試rake任務

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM