Techioz Blog

私の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’))