これは簡単な質問ですが、明確な答えが見つかりません。Rspec:機能仕様からApplicationControllerメソッドを実行する方法
RspecとCapybaraを使用してダミーアプリケーションからレールエンジンをテストしています。私の仕様では、特定の引数を持つメソッドget_component()
を使用する必要があります。どうしたらいいですか?
私の機能テストがある:私は方法は、私はそれが本当のために実行したい/スタブをモックする必要はありません
NoMethodError:
undefined method `get_component' for #<ApplicationController:0x007ff7207234f8>
を返し
require "rails_helper"
describe "My test", type: :feature do
it "gets a component if slug is provided" do
# ...
component = ApplicationController.get_component(slug)
# ...
end
end
。
また、アプリケーションApplicationController
は、エンジン1を継承する必要がありますか? ApplicationControllerを呼び出すのは正しいですか?
これについての情報を見つけることができない理由は、実際に機能テストで行うべきではないからです。機能テストは、ユーザーの視点からブラウザーを介して行う必要があります。 –
私は知っていますが、ユーザーが達成したことが機能が期待していること、つまりフォームを完成した後に新しいコンポーネントを追加することであるかどうかを確認する必要がありました。これはまだやってはいけないことですか? –
コンポーネントがアプリケーションのどこかでユーザーに表示されていると仮定すると、UIを直接作成するのではなくUIにコンポーネントが表示されているのを確認する必要があります。あなたが試みているのは、異なるタイプのテスト(リクエスト、コントローラなど)に適しています。 –