2016-12-14 8 views
0

私がfactorygirl、偽物に新たなんだ、とより広くテスト。FactoryGirlビルドのuser_idを作成するにはどうすればよいですか?

私は、ユーザーが特定のページにアクセスし、および/または特定のネストされたリソースに対して所有権を持つことができるかどうかを評価するために、FactoryGirlによって作成された私のユーザーにIDを追加する必要があると考えています。私が研究(GoogleとStackOverflowをチェックする)をすると、FactoryGirlが作成したリソースのIDを生成することに関する多くの情報が表示されないため、質問しています。私のユーザはIDがnilであるので、FactoryGirlのデフォルトはIDを追加せずにリソースを構築すると仮定します。

私は、関連付けを作成に関する情報を参照してください、それでもそれらは存在しないIDSのように見えます。私が作成しているアプリケーションでは、ユーザーのリソースに対するすべてのアクセスがユーザーのIDと照合されます。

私が作成され、私のFactoryGirlためのIDは、ユーザーが生成する必要がありますか? そうでない場合は、どうしてですか?代わりに私は何をすべきですか? もしそうなら、どうやってお互いをチェックするための異なるユーザーIDを生成するのですか?あなたの入力を事前に

感謝。

答えて

2

IDを使用すると、ユーザーオブジェクトを永続化されている場合は自動的にインクリメント/割り当てる必要があります。 createではなく、buildを使用してオブジェクトをインスタンス化している可能性があります。

user = build(:user) < - オブジェクトが作成され保存されていない、何のID

user = create(:user) < ---オブジェクトが作成されていないと保存され、ベストプラクティスについてID

を持って、あなたのテストが別々に実行されていることを確認あなたのライブデータを汚染しないようにします。また、テストを実行した後で簡単にテストデータをクリーンアップする方法については、https://github.com/DatabaseCleaner/database_cleanerを参照してください。

+0

ありがとう、これは私が今までそれを逃した方法を知りません。 – Lenocam

関連する問題