我正在使用 MvcContrib 的测试助手和 Rhino Mocks 3.5 来测试 ASP.NET MVC 操作方法。我像这样构建我的假控制器:
var _builder = new TestControllerBuilder();
_builder.InitializeController(_controller);
所以我得到了一个包含假 HTTP 服务器等的假控制器。
然后我试图像这样存根 Server.MapPath 方法
controller.Server.Stub(x => x.MapPath(Arg<string>.Is.Anything)).Return("/APP_DATA/Files/");
但在我的测试方法中,对 Server.MapPath("/APP_DATA/Files/") 的调用返回 null。
这是测试
const string STOCK_NUMBER_ID = "1";
const string FULL_FILE_PATH = "App-Data/Files";
var controller = CreateStockController();
_uploadedFileTransformer.Stub(x => x.ImageBytes).Return(new byte[10]);
_uploadedFileTransformer.Stub(x => x.ConvertFileToBytes(FULL_FILE_PATH)).Return(true);
controller.Server.Stub(x => x.MapPath(Arg<string>.Is.Anything)).Return("/App_Data/Files/");
controller.AddImage(Guid.NewGuid(), STOCK_NUMBER_ID);
我错过了什么?