7

.aspx.cs ページにテスト メソッドを記述できますか? はいの場合、どのように?Page_Load メソッドにあるコードのテスト メソッドを記述する必要があります。解決策があれば提案してください。

4

3 に答える 3

5

おそらくできますが、Page_Loadメソッドのロジックをモデル クラスに抽出してから個別にテストすると、はるかにクリーンになります。

なんで?

  • メソッドのロジックを他のページで再利用する
  • モデルとプレゼンテーションのより良い分離
  • テストしやすいよりクリーンなコード

サンプル:

// Home.aspx.cs
Page_Load()
{
    //Lots of code here
}


// or else Home.aspx.cs
Page_Load()
{
    Foo f = new Foo();
    var result = f.DoThings();
}

//Unit test
Page_Load_FooDoesThings()
{
    //Arrange
    Foo f = new Foo();
    var expected = ...;
    
    //Act
    var actual = f.DoThings();
    
    //Assert
    Assert.AreEqual(expected, actual)
}
于 2012-12-18T09:52:00.683 に答える
3

テスト メソッドはどこにでも記述できます。3A ルール (Arrange、Act、Assert) を使用し、使用しているテスト フレームワークに基づいてメソッドを装飾するだけです。テスト フレームワーク、プロパティ、メソッドなどを使用して、ほとんどすべてをテストできます。

ただし、ベスト プラクティスは、テスト用に別のプロジェクトを作成することです。

またPage_Load、他のページ ライフサイクル メソッドと同様に、テスト可能にするのは面倒なので、テストには適していません。機能性はメソッドの外でテストできるものであるという「oleksii」に同意しPage_Loadます。

于 2012-12-18T09:53:27.597 に答える
1

実際にできます。にテスト方法を追加するPage_Loadと、プログラムで問題ありません。しかし、あなたはすべきではありません。でテスト方法を定義できる場合は、Page_Loadページを読み込むたびにテストが不要に実行されるためです。これは、単体テストでは次の方法ではありません。そのためVisual Studio、個別のテストプロジェクトを作成することができます。

于 2012-12-18T09:58:11.297 に答える