モジュール内でメソッドを共有し、このようなモジュールをlib
フォルダ内に配置します。
module FakeData
def random_address
[Faker::Address.street_address, Faker::Address.city].join("\n")
end
module_function
end
とあなたのrakeタスクの内部を含むlib/fake_data.rb
よう
何かがちょうどモジュールを必要とし、FakeData.random_address
を呼び出します。
しかし、それがあなたがテストを実行するたびに行う必要があるシードのようなものなら、これを一般的なbefore all
に追加することを検討する必要があります。
など。私spec_helper
は次のようになります。
とモジュールSetupSupport
がspec/support/setup_support.rb
で定義され、以下のようになりますされています
module SetupSupport
def load_db_seed
load(File.join(Rails.root, 'db', 'seeds.rb'))
end
end
ないあなたが種をロードする必要がある場合は必ず、またはすでにこれをやっているが、必要な擬似データを生成するための理想的な場所です。
私のセットアップサポートクラスはspec/support
で定義されていることに注意してください。コードは仕様にのみ関連しているため、同じコードが必要なレーキタスクはありません。
ありがとうございました!あなたはそのクラスをどのディレクトリに入れますか? – Tintin81
それはあなた次第です。私はおそらくそれをコントローラのディレクトリに入れます。 – BlackHatSamurai
Noooooコントローラディレクトリです。これはまさに 'lib'フォルダがある理由です。 'app/controllers'フォルダにはコントローラだけが含まれていなければなりません。 – nathanvda