0

私は初めてフレームワークのテストに飛び込んでいますが、セキュリティ機能のためにどのようなテストを実装するかを知るのに問題があります。許可されたユーザーのみが新しい投稿を作成できる基本的なブログアプリケーションを想定します。

「投稿」テストの場合、許可されたユーザーのみが新しい投稿を作成できるという事実は、機能内のキュウリ、またはcontroller_specを使用したrspecでテストする必要がありますか?どちらもできることは知っていますが、キュウリの機能でそれをテストするのは少しやり過ぎのようですよね。

私には、「ゲストは新しい投稿を作成できないようにする必要がある」というのは機能ではなくシステムの制限であるように思われるので、キュウリの機能ではなく、rspecテストである必要があります。最終的なアプリケーションでは、ゲストページから「投稿の作成」機能へのリンクがないため、私が実際にテストしているのは、ゲストがURLを入力しないことです/posts/new

私の理解は正しいですか?

4

2 に答える 2

2

生データをアプリケーションに送信するだけで、どのユーザーもサイトのハッキングを試みることができます。あなたはそれに備えなければなりません。承認されていないユーザーが新しい投稿 (投稿/作成) を作成しようとすると、エラー画面が表示され、データベース エントリが作成されないことを確認するテストケースをお勧めします。これは新しいアクションでも確認できますが、入力アクションではないため、それほど間違いではありません。無許可で使用できないすべてのアクションをカバーするようにしてください。そのため、db アクションは発生せず、テストケースでエラー ページまたは何かが発生します。

実際、ページのセキュリティは機能であり、ブログ アプリにとって最も重要ではないかもしれませんが、重要です。直接的な攻撃だけでなく、誰かが 1 つのタブで投稿を書き始め、別のタブでログアウトするなど、偶発的な攻撃も想定しておく必要があります。

正確な方法はあなた次第だと思います。

更新: Rspec コントローラー テストを使用する必要があると思います。

于 2012-04-24T13:46:47.537 に答える
1

個人的には、rspecを使用してコントローラーをテストし、ユーザーアクセスを確認します。rspecで数人のユーザーを作成します

before {}
FactoryGirlを使用して、そのうちの1つでログインし、他のユーザーが現在のユーザーのページにアクセスできないことをテストします。これは設定に少し手間がかかるかもしれませんが、ページの作成中にアクセスセキュリティをテストできるのであれば、それだけの価値があります。

于 2012-04-24T14:18:04.603 に答える