これがばかげた質問であるなら許してください、しかし私はあざけるのがかなり新しいです、そしてそれについて頭を悩ませようとしています。
メソッドに必要なスタブを使用する単体テスト(組み込みのVisual Studio 2010 Professionalテスト機能を使用)がいくつかあります。スタブを作成し、いくつかのプロパティとメソッドのデフォルトの戻り値を設定しましたが、すべて正常に機能します。スタブを設定する静的クラスがあり、これはスタブTestInitialize
を設定するメソッドで使用されます...
public static AppointmentReminderProviderInterface GetMockProvider() {
AppointmentReminderProviderInterface provider = MockRepository.GenerateStub<AppointmentReminderProviderInterface>();
provider.Stub(p => p.ContactName).Return(MockProviderContactName);
provider.Stub(p => p.ContactEmail).Return(MockProviderContactEmail);
return provider;
}
MockProviderContactName
およびMockProviderContactEmail
は、プロバイダーのデフォルトデータを含むローカル文字列プロパティであることに注意してください。物事がデフォルトのデータで期待どおりに機能するかどうかを確認するユニットtstsは、すべて正常に合格します。
ただし、これらのプロパティの1つにダフデータが含まれている場合に何が起こるかをテストしたいと思います。これをスタブに設定するだけでいいと思ったのですが、うまくいきません。テストメソッドには次の行が含まれています...
_provider.Stub(p => p.ContactEmail).Return("invalid");
Debug.WriteLine("Provider email: <" + _provider.ContactEmail + ">");
は、 「無効」を返すようにプロパティをDebug.WriteLine()
設定したにもかかわらず、デフォルトの電子メールアドレスを返すことを示しています。ContactEmail
これにより、例外がスローされることを期待しているため、テストが失敗しますが、失敗しません。
このプロパティの戻り値を変更できない理由を誰かが知っていますか?
助けてくれてありがとう。