MVC 2とMVC 2を使用しています。ASP.NET MVC 2:ビューとコントローラでテストするもの
私は助けが必要です。痛い週末だった。私はMVC contribを使用してコントローラのテストを行う方法に関する良い記事を探しています。誰も私にはまともな答えがありません。ビューとコントローラで何をテストする必要があるかを知りたいですか?このユニットテストまたは統合テストですか?
私の基本的なシナリオを説明しましょう:インデックスビューにグリッドがあります。このグリッドにはニュース項目のリストがあります。このグリッドでは、各行の最後の列には、EditNewsビューに移動して選択したニュース項目を編集するための編集リンクがあります。また、このIndexビューにはAddNewボタンがあり、CreateNewsビューを表示します。
現在のシナリオでは、どのテストを書く必要がありますか?あなたはユニットテストか統合テストかを明記してください。編集リンクのテストを書く必要がありますか?私はAdd Newsボタンのテストを書く必要がありますか?ユーザーがこのインデックスページで許可されているかどうかを確認するテストを作成する必要がありますか?これは私が現在持っているものです。
[Test]
public void Index_Should_Redirect_To_Error_View_When_User_Does_Not_Have_Permission()
{
}
[Test]
public void Index_Should_Log_Exception_When_User_Does_Not_Have_Permission()
{
}
[Test]
public void Index_Should_Return_Default_View()
{
// Act
var result = newsController.Index();
// Assert
result
.AssertViewRendered()
.ForView("Index");
}
更新日:
public ActionResult Index()
{
IEnumerable<News> news = newsRepository.FindAll();
return View(news);
}
まともな記事やサンプルコードをいただければ幸い: はここに私のインデックスのアクションメソッドです。 MVC contribでも、コードサンプルは多用されていません。私は可能な限り多くの意見を聞きたい。
ありがとうございました。
更新された記事を参照してください。私はまだこの周りに私の頭を得ていない。私が上で述べたテストは、それまでのラインのそれですか?単体テストと統合テストの他に何がありますか?あなたがいくつかのサンプルを提供できるなら、私はこれを感謝します。 –
@Brendanの場合、コントローラの 'Index'アクションは単体テストでなければなりません。これについては、私のコードサンプルを参照してください。それは私があなたに示したものと非常によく似ています。 –
ありがとうございます。ちょっと別の初心者の質問ですが、1回のテストでそれほど多くはありませんか?正しいビューがレンダリングされ、リポジトリ呼び出しを行っているかどうかを確認しますか?これらは2つの別々のテストではいけませんか?また、GetNewsが呼び出されたことをいつ確認しますか?この同じテストで?または別に? –