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