MvcContrib의 테스트 도우미와 Rhino Mock 3.5를 사용하여 ASP.NET MVC 동작 메서드를 테스트하고 있습니다. 나는 그렇게처럼 내 가짜 컨트롤러를 구축 : MvcContrib을 사용하여 Server.MapPath를 스터핑하려고합니다. 테스트 도우미와 Rhino Mock 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);
입니까?
테스트를 볼 수 있습니까? 누락 된 리포지토리처럼 보입니다. 재생(). – PatrickSteele
OP에 테스트를 추가했습니다. Rhino Mocks v3.5에서 레코드 및 재생 기능을 사용해야한다고 생각하지 않았습니다. 제가 틀 렸습니다. –
'CreateStockController()'도 붙여 줄 수 있습니까? 나는 당신이 사용하고있는 테스트 도우미에 익숙하지 않지만, 어디서 controller.Server가 생성 되었는가? – Grzenio