2013-03-07 2 views
0

컨트롤러에 다음과 같은 메서드가 있습니다.FileContentResult null from Controller 메서드

 [HttpGet] 
     public ActionResult Process(int id) 
     { 
       var file = ServiceUtilities.FileManager.GetFile(id); 

       if (file != null) 
       { 
        var fcr = new FileContentResult(new byte[1], @"Image\Gif"); 
        return fcr; 
       } 

       return RedirectToAction("Index", "Error"); 
     } 

그리고이 코드는 내 단위 테스트에서 다음과 같이 호출합니다.

var response = 
      new Controllers.FileController().Process(1) as FileStreamResult; 


Assert.IsNotNull(response); 

그러나 응답은 항상 null입니다. 컨트롤러 코드에서 fcr에 중단 점을 설정하면 null이 아닙니다.

설명을 위해 file은 조롱 된 개체이며 null이 아닙니다.

답변

1

내가 누락되었을 수 있지만 FileContentResult (귀하의 방법으로 반환 한 것)은 FileStreamResult (테스트에서 캐스팅 한 내용)이 아닙니다. 둘 다 FileResult에서 상속되지만 테스트를 통과하려면 FileContentResultFileStreamResult에서 상속되어야합니다.

잘못된 유형입니까?

+0

아니,이 늦은 시간에 그냥 바보가되고있다! – ChrisBint

+0

LOL! 우리는 모두 거기에 왔습니다 @ChrisBint. 우리가 말하는대로하지 마십시오. –

+0

John, 더 많은 점수를 얻고 의견을 남기고 기여할 수 있기를 바랍니다. –

관련 문제