私のrspecでthorタスクを要求すると、未定義のメソッドが発生します
概要
Thor タスク用の非常に基本的な rspec を書こうとしていますが、タスクを要求 (またはロード) しようとすると失敗し、さまざまな Thor クラスレベルのメソッドに対して NoMethodError (‘未定義メソッド …’) が発生します ( desc、method_option、class_option など)
require "spec_helper"
require Rails.root.join('lib/tasks/test_task.thor')
describe 'TestTask' do
it "is instantiated ok" do
TestTask.new
end
end
ご覧のとおり、Rails アプリの環境でテストしています。
thor タスク自体はコマンド ラインから正常に実行されます。
他の場所で提案されているように、Thor 仕様を調べました (RSpec を使用して Thor スクリプトをテストする良い例はどこで見つかりますか?)
何か案は?
解決策
私が見つけた答えは、requireではなくloadを使用することです (これをテストしたと思っていましたが、おそらく間違っていました)
それで:
「トール」が必要です load File.join(Rails.root.join(‘lib/tasks/test_task.thor’))