我试图伪造一个 FtpWebRequest.GetResponse() 进行集成测试,但不使用服务器。我一直在尝试做的是简单地返回一个假的 FtpWebResponse 但是,您不能访问 FtpWebResponse 的构造函数,因为它是内部的。
这是我的代码:
生产代码:
using (FtpWebResponse response = (FtpWebResponse) ftpWebRequest.GetResponse())
{
ftpResponse = new FtpResponse(response.StatusDescription, false);
}
测试假我试图用来返回一个假的 FtpWebResponse:
ShimFtpWebRequest.AllInstances.GetResponse = request =>
{
FtpWebResponse ftpWebResponse= new FtpWebResponse(/*parameters*/); // not allowed because it is internal
ftpWebResponse.StatusDescription="blah blah blah";
return ftpWebResponse;
};
最后,我要做的就是返回一个假的 ftpWebResponse 以在我的测试中进行断言。有任何想法吗?谢谢