1

例外を代用したいのですが、それはフィールドです。

そんな感じ:

var webExcetion = Substitute.For<WebException>();
webExcetion.Response.Returns(httpWebResponse);
substituteForHttp.GetResponse(Arg.Any<string>()).Returns(x => { throw webExcetion; });

このコードは、NSubstitute によって Castle.Proxies.ExceptionProxy または NSubstitute.Exceptions.CouldNotSetReturnException をスローします。

どうやってやるの?

4

1 に答える 1

4

このWebExceptionクラスには仮想メンバーがないため、NSubstitute は多くのことを行うことができません (Castle DynamicProxy を使用して派生型のインスタンスを作成することによって機能し、すべての仮想メンバーをオーバーライドすることによってインスタンスを代替として機能するように変更します)。

この場合、実数を使用してこの問題を回避できますWebException

WebException webException = 
    new WebException("test", null, webExceptionStatus, httpWebResponse);

これにより、必要に応じてResponseプロパティが設定さhttpWebResponseれます。

お役に立てれば。

于 2012-08-31T23:23:04.770 に答える