3
我有一個生成新用戶的rake任務。需要通過命令行輸入電子郵件,密碼和password_confirmation(確認)的值。Rspec Rake任務:如何解析參數?
這是我的耙子任務的代碼:從我的命令行
namespace :db do
namespace :setup do
desc "Create Admin User"
task :admin => :environment do
ui = HighLine.new
email = ui.ask("Email: ")
password = ui.ask("Enter password: ") { |q| q.echo = false }
confirm = ui.ask("Confirm password: ") { |q| q.echo = false }
user = User.new(email: email, password: password,
password_confirmation: confirm)
if user.save
puts "User account created."
else
puts
puts "Problem creating user account:"
puts user.errors.full_messages
end
end
end
end
我可以通過鍵入「管理員:設置耙分貝」調用它。
現在我想用rspec測試這個任務。 到目前爲止,我設法創建下面的spec文件:
require 'spec_helper'
require 'rake'
describe "rake task setup:admin" do
before do
load File.expand_path("../../../lib/tasks/setup.rake", __FILE__)
Rake::Task.define_task(:environment)
end
let :run_rake_task do
Rake.application["db:setup:admin"]
end
it "creates a new User" do
run_rake_task
end
end
當運行規範的我rake任務會要求輸入從我的命令行。所以我需要的是解析電子郵件,密碼和確認值,以便在執行我的規格時,耙子任務不會要求這些字段的值。
如何從spec文件實現此目的?
你會如何解決這個錯誤? NameError: 未初始化的常量HighlLine #./spec/lib/tasks/data_rake_spec.rb:10:in' –