繁体   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