1

最初のstep-defを機能させることができないグリーンフィールドRails3.2アプリがあります。私のキュウリレールは(1.3.0)、factory_girl_rails(3.1.0)です。それらは両方ともテスト環境にあります。きゅうりの良い習慣に従って、このアプリにはまだモデル、ジェネレーター、ビューが書かれていません。私は、何をする必要があるかを推進するためのテストからの微調整を待っています。

最初の機能は次のとおりです。

Background: 
   Given a School "Murfree High School" exists

これがステップdefinition.rbです

 Given /^a School "([^"]*)" exists$/ do 
    #Factory(:school)  #fails
    school = FactoryGirl.create(:school)
 end

これが私のspec/factories.rbです

 require 'factory_girl'
 FactoryGirl.define do
   factory :school do
     name "Murfree High School"
   end
 end

そのため、そのステップ定義を一般的なステップにして、学校の任意の名前に交換できるようにしたいので、不一致エラーが発生します。しかし、私が考えたファクトリのポイントは、レコード生成を特定して、そのファクトリを他の定義で再利用できるようにし、フィールドの数が増えるにつれてそれを成長させることです。通常、私のステップ定義は与えられます/ ^ a School "([^"] *) "exists $ / do | name |しかし、そのテストレコードを生成する準備ができている工場がある場合、その引数を置く場所はありません。この定義がその工場に「結び付けられている」ように、機能の高校の名前の周りの引用符を削除すると、キュウリから黄色の応答が返されます。これは、生成するモデルがないため、疑問を投げかけます。 、なぜ赤いエラーメッセージを受け取らなかったのですか?

factoryGirlとキュウリの一般的なステップ定義を調整する際に私は何を見落としていますか?

4

1 に答える 1

1

FactoryGirlには、一連のステップ定義が含まれています。そのうちの1つは、と呼ばれるステップを自動的に作成しますa school exists with a name of "([^"]+)"。元の発表については、http://robots.thoughtbot.com/post/284805810/gimme-three-stepsを参照してください。

PS: FGステップ定義モジュールのコピーも作成しました。これはまったく同じことを行い、生成されるファクトリの名前に基づいてインスタンス変数を作成するだけです。あなたの場合、インスタンス変数@schoolが作成されます。

于 2012-04-27T17:07:47.150 に答える