NunitをASP.Netで動作させようとしています。ユニット/統合HttpCurrentContextを使用するテストコード
問題は、グローバルコントロールを参照するカスタムコントロールをテストしていることです。
私は「App_GlobalResourcesをロードできません」を取得しますユニットテストそれ
/// </summary>
[Test]
public void TestSetAndGetNumber()
{
PhoneNumber phone = new PhoneNumber(PhoneNumber.NumberType.Business, "", true, "");
string expectedString = "1-800-Goat-Phone";
string resultString = "1-800-Goat-Phone";
resultString = phone.Value = resultString;
Assert.AreEqual(expectedString, resultString, "GetNumberMatch method returned unexpected result.");
Assert.Fail("Create or modify test(s).");
}
にしてみてください。
私はHttpContextをシミュレートしようとしなければならないかもしれないかどうか試してみてください。Using You've been Haacked blog postこれは誰もが確認できませんでした。
テストされたクラスはカスタムコントロールPhoneNumberです。すべての電話番号のインスタンスは現在、ラベルテキストなどを取得するためにGlobalResourcesにヒットする必要があります.GlobalResourceを使わずにその部分をテストできるように、クラスの変更をどのように推薦するかはわかりません。 PhoneNumberがGlobalResourcesにアクセスするためのインタフェースを使用していた場合、単体テストでそのインタフェースをきれいに変更して模擬データを返す方法はありません。 –
テストの目的は何ですか? GlobalResourceの文字列コンテンツをテストしますか?私はちょうどあなたが正確にテストしたいものと少し混乱していますか? –
getter-setterのいくつかのロジック。私は、ゲッターセッターにロジックを持たないことになる人もいるかもしれませんが、getter/setterタイプのロジック(表示ロジック)です。私は、デザインパターンの観点からはほとんど価値を提供しないインターフェースを持つという大きなファンではありません。 本当に単体テストでhttpcontextをシミュレートしたいと思うかもしれませんが、多分私は星を望んでいます。 –