none
ASP.NETプロジェクトのページの単体テスト法 VS2008 Professional RRS feed

  • 質問

  • 現在VS2008 Proを使い単体テストプロジェクトを作っています。

    画面とは関係ないデータベースアクセス関係のクラスメソッドのテストはこれで出来ますが画面のPageクラスのテストは表示できないのでテストできない項目が多いです。

     

    たとえば画面を表示した後のVIEW_STATEの値の検証やボタンをクリック(Buttonのclickイベントを発生)させた後の表示値の検証などを行いたいのです。目視のテストでも役立ちます。

     

    これを実現する方法はあるでしょうか?

     

    2008年3月25日 2:30

回答

  • 和和和さんこんにちは

    私もこの質問の回答に興味あるのですが、Professionalでは提供されていないかと思います。

    回答になってませんが、

    Visual Studio Team Edition for Software TestersのWebテストを使用すれば

    Microsoft Internet Explorer を使用した一連の HTTP 要求を記録し、特定のページに特定の文字列が含まれているかどうかなどチェックすることができますね。

    2008年3月31日 7:25
  • 単体テストと同じようなイメージでのWEBアプリ用のテストツールはProfessional版では提供されていません。

    Testersが必要になります。

    VIEW_STATEの値などについてはweb.configのtraceのpageOutputをtrue(IDE実行でなければlocalOnlyをfalseにする必要がありますが万が一を考えるとお勧めできません)にすれば画面の下側に表示はされますが、お聞きになりたいのはこのことじゃないですよね。

     

    2008年3月31日 7:46
  • <TestMethod(), _
         HostType("ASP.NET"), _
         AspNetDevelopmentServerHost("C:\Documents and Settings\kznomura.NAGOYA\My Documents\Visual Studio 2008\Projects\Web単体テスト\Webアプリケーション\Webアプリケーション", "/"), _
         UrlToTest("http://localhost:3608/Startup.aspx"), _
         DeploymentItem("WebApplication.dll")> _
        Public Sub URLテスト()
            Dim objPage = DirectCast(TestContext.RequestedPage, WebApplication.Startup)
            Dim objPrivateObject As New PrivateObject(objPage)
            Dim page_acc As New WebApplication.Startup_Accessor(objPrivateObject)
            objPrivateObject.Invoke("Button1_Click", objPage, EventArgs.Empty)

            System.Windows.Forms.MessageBox.Show(objPage.Title)
        End Sub

    こんな感じでイベントハンドラ後の値は取得できます。上記の例はボタンクリックしたらTitleの値が書き換わるという仕様の画面のTitle値を取得する処理です。

    Testerについては検討してみます。ありがとうございました。

    2008年3月31日 9:42

すべての返信

  • 和和和さんこんにちは

    私もこの質問の回答に興味あるのですが、Professionalでは提供されていないかと思います。

    回答になってませんが、

    Visual Studio Team Edition for Software TestersのWebテストを使用すれば

    Microsoft Internet Explorer を使用した一連の HTTP 要求を記録し、特定のページに特定の文字列が含まれているかどうかなどチェックすることができますね。

    2008年3月31日 7:25
  • 単体テストと同じようなイメージでのWEBアプリ用のテストツールはProfessional版では提供されていません。

    Testersが必要になります。

    VIEW_STATEの値などについてはweb.configのtraceのpageOutputをtrue(IDE実行でなければlocalOnlyをfalseにする必要がありますが万が一を考えるとお勧めできません)にすれば画面の下側に表示はされますが、お聞きになりたいのはこのことじゃないですよね。

     

    2008年3月31日 7:46
  • <TestMethod(), _
         HostType("ASP.NET"), _
         AspNetDevelopmentServerHost("C:\Documents and Settings\kznomura.NAGOYA\My Documents\Visual Studio 2008\Projects\Web単体テスト\Webアプリケーション\Webアプリケーション", "/"), _
         UrlToTest("http://localhost:3608/Startup.aspx"), _
         DeploymentItem("WebApplication.dll")> _
        Public Sub URLテスト()
            Dim objPage = DirectCast(TestContext.RequestedPage, WebApplication.Startup)
            Dim objPrivateObject As New PrivateObject(objPage)
            Dim page_acc As New WebApplication.Startup_Accessor(objPrivateObject)
            objPrivateObject.Invoke("Button1_Click", objPage, EventArgs.Empty)

            System.Windows.Forms.MessageBox.Show(objPage.Title)
        End Sub

    こんな感じでイベントハンドラ後の値は取得できます。上記の例はボタンクリックしたらTitleの値が書き換わるという仕様の画面のTitle値を取得する処理です。

    Testerについては検討してみます。ありがとうございました。

    2008年3月31日 9:42