我正在使用MvcContrib的測試助手和Rhino Mocks 3.5來測試ASP.NET MVC操作方法。我建立了我的假控制器像這樣:嘗試使用MvcContrib存根Server.MapPath測試助手和Rhino Mocks 3.5
var _builder = new TestControllerBuilder();
_builder.InitializeController(_controller);
所以我得到的含有假HTTP服務器假的控制器等
然後我試圖存根像這樣
controller.Server.Stub(x => x.MapPath(Arg<string>.Is.Anything)).Return("/APP_DATA/Files/");
的方法使用Server.Mappath
但在我的測試方法中,對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);
我缺少什麼?
我們可以看看測試嗎?看起來像一個可能缺少的repository.Playback()。 – PatrickSteele 2010-07-14 16:27:30
我已將測試添加到OP。我認爲我們不需要在Rhino Mocks v3.5中使用錄製和播放功能 - 我錯了嗎? – 2010-07-14 16:33:50
你可不可以貼'CreateStockController()'?我不熟悉你正在使用的測試助手,但是controller.Server在哪裏創建的? – Grzenio 2010-07-14 16:39:36