我想替换异常及其字段。
类似的东西:
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。
我该怎么做?
答案 0 :(得分:4)
WebException
类没有虚拟成员,因此NSubstitute不能对它做很多事情(它通过使用Castle DynamicProxy创建派生类型的实例,然后通过覆盖更改实例作为替代所有的虚拟成员。)
在这种情况下,使用真正的WebException
:
WebException webException =
new WebException("test", null, webExceptionStatus, httpWebResponse);
这会根据需要将Response
属性设置为httpWebResponse
。
希望这有帮助。