2011-12-09 7 views
0

次のコードでは、エラーは無効なサポートですか?Rails3 - テスト - 関係エラーとは何ですか?無効ですか?

つまり、無効ですか?真実であるかエラーのリストに偶然付いている

間違っていますか?それ自体で働いていますか?

テスト製品= Product.new

アサートproduct.invalidを行う "製品の属性が空であってはなりませんか"? assert product.errors [:title] .any? assert product.errors [:description] .any?

assert product.errors [:price] .any?

assert product.errors [:image_url] .any? (モデル/データベースのための)ユニットテストは、開発

中に使用するためのものである一方で 、

(コントローラ用)機能テストは、ユーザーのために、実行時に実行します。 エンド

はまた、私がいることを仮定してもよいですありがとう! 強力なテキスト

+0

すべてのテストは開発者向けに実行されます。実行時にテストは実行されません。コードは、ユーザーにとって安定している必要があります。しかし、はい、機能テストは "ユーザーをシミュレート"(クリック、入力の入力など)、単体テストのチェックモデル、リレーションおよび内部ビジネスロジック。 –

答えて

0

テストは開発中に実行されるため、作成するコードにできるだけエラーがないことを確認してください。

ユニットテストでは、小さなコードユニット(たとえば単一モデル)をチェックし、機能テストでは「署名」アッププロセスなどのいくつかのステップを実行する「機能」をチェックします。

関数valid?は本質的にモデルを定義されたバリデーターに通し、エラーがどこにあるかをチェックします。つまり、@user.errors配列にエンティティが含まれている場合、valid?はfalseを返します。

しかし、もう一度、コードを適切に開発しているかどうかをテストするためにテストが行​​われ、本番環境では実行されません。

関連する問題