17

このコードの実行:

_foo = MockRepository.GenerateStub<IBar>();
_foo.Stub(x => x.Foo()).Return("sdf");

いつ

public interface IBar
{
   string Foo();
}

public class Bar : IBar
{
   public string Foo()
   {
      throw new NotImplementedException();
   }
}

NotSupportedException - 「封印されたクラスのモックを作成できません」をスローします。封印されたクラスをモックできない理由は理解できますが (TypeMock には解決策があります)、封印されたクラス (文字列) を返すクラスをモックすることの問題は何ですか?

4

5 に答える 5

27

Rhino Mocks は、この例外をキャッチして処理しているようです。ブレークポイントとして例外を有効にした場合にのみ、VS.NET デバッガーに表示されます。この例外ブレークポイントを過ぎても安全に実行を継続できるようで、すべて期待どおりに機能します。

于 2012-01-10T01:43:26.963 に答える
1

私は同じ問題を抱えています.VSスタジオのデバッグ設定か、Rhinoモックのアクセス権が不十分である必要があります。これを引き起こしているコードではないことは確かです。

于 2011-11-28T12:03:58.703 に答える
1

あなたのコードは正しく動作します。問題の原因となっている、表示されていない他のコードがある可能性があります。単体テスト全体をここに投稿してください。問題を診断します。

于 2009-07-20T06:12:46.283 に答える
0

私はそれを二番目に - それはコードの問題ではありません。VSデバッグ設定です。

Arg.Is.Anything をパラメーターとしてスタブに送信しようとしているときに、以下のコードのデバッグ中に同じ例外が発生します。

mockPermissionManager.Stub(item => item.HasAccess(Arg<string>.Is.Anything)).Return(true);

例外が処理され、コード/モックが期待どおりに機能します。F5 を実行するだけです

于 2015-04-16T13:12:25.617 に答える