ASP.NET MVC 2の学習と使用を開始したばかりで、コードの単体テストにも深く関わっています。私の質問は、テスト内でクレデンシャルを渡すことによってユーザーログインをシミュレートする方法です。
私はMSpecを使用していて、テストを作成するためにfakeiteasyに頭を悩ませようとしています。これまでのところ、認証されていないユーザーがページにアクセスしようとしたときに、1つのテストを正しく記述した(テスト条件に合格した)と思います。
Subject( typeof( HomeController ) )]
public class context_for_a_home_controller_for_not_logged_user
{
protected static HomeController HomeController;
Establish context = () =>
{
// Create controller
HomeController = new HomeController();
HomeController.ControllerContext = A.Fake<ControllerContext>();
};
}
[Subject(typeof(HomeController))]
public class when_the_home_page_is_requested : context_for_a_home_controller_for_not_logged_user
{
static ActionResult result;
Because of = () =>
result = HomeController.Index();
It should_return_the_log_in_page_if_user_not_logged_in = () =>
{ result.ShouldBeAView().And().ShouldUseDefaultView(); };
}
ここまでは順調ですね。ただし、認証されたユーザーがホームコントローラーにアクセスしたときのシナリオをテストしたいと思います。私は認証されたユーザーをシミュレートする方法に固執しており、どんな助けやアドバイスも歓迎します。
TIA、
デビッド