質問: ### 前提・実現したいこと ASP.NET Web Formsで作ったプロジェクトに対して 単体テスト/結合テストを行いたい ### 発生している問題・エラーメッセージ 通常のC#, VBプロジェクトであれば .cs/.vbファイルに対して右クリックしたコンテキストメニューに 「単体テストの追加」などの項目が出てくれるのですが、 .aspx.cs / .aspx.vbなどの、ASP.NETのプロジェクト内にあるファイルについては これができません。 もちろん.aspx部分と中の.aspx.vb部分が不可分であるため、 片方の単体テストが仮にうまくいっても意味ないよ...という意味合いだとは思いますが、 それであれば.aspx + .aspx.vbを合わせた結合テストを行いたいと思っています。 しかしながらVisualStudio上でそれを行えるような項目が見当たらず、 またネットを探してもASP.NET MVCでのテスト方法しか記述がありません。 なんとなくSelenium + Mochaなどのツールを使って、HTML + Javascriptの時のような形で テストを行う必要があるのかな?と思っておりますが、 詳しいことをご存知の方おられましたら、 ASP.NET Web Formのテスト方法について教えていただけませんでしょうか? ### 補足情報(FW/ツールのバージョンなど) VS2008 .NET3.5
回答: ASP.NET Web Forms では MVC のような単体テストはできません。 理由は以下の通りです。 (1) ASP.NET Web Forms は Page クラスを中心としたフレームワークです。Page クラスは直接インスタンス化することはできず、テストに当たってもサーバー環境(ASP.NET 開発サーバー、IIS Express、IIS)を準備してその上で動かす必要があります。 (2) ボタンクリック、フォーム要素の変更、グリッドの行クリックなどにより発生するイベントは ViewState とポストバックにより実現されますが、それらはブラウザがないとできません。