【发布时间】:2019-07-16 20:38:05
【问题描述】:
在我的 rake 任务中,我有:
namespace :example do
desc "this does something"
task :something, [:arg1] => :environment do |t, args|
(some_irrelevant_code)
print 'YES/ NO : '
choice = STDIN.gets.chomp.upcase
case choice
when 'YES'
do_something
break
when 'NO'
break
end
end
end
在我的规范中,我有:
require "spec_helper"
require "rake"
feature "Example" do
before do
load File.expand_path("../../../lib/tasks/example.rake", __FILE__)
Rake::Task.define_task(:environment)
end
scenario "something" do
Rake.application.invoke_task("example:something[rake_args_here]")
end
一切正常,尽管我很难找到一种方法来避免在运行测试时在控制台中键入用户输入。
基本上我希望测试运行并假设用户将键入“YES”。
如果您对此有解决方案或指出正确的方向,请告诉我。
提前致谢。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 rspec rspec-rails