2013-03-07 106 views
0

我在我的控制器中有以下方法;FileContentResult null從控制器方法

 [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); 

但是,響應始終爲空。如果我在Controller代碼中的fcr上設置斷點,則它不爲空。

爲了便於說明,file是一個模擬對象,不爲空。

回答

1

我可能會丟失一些東西,但FileContentResult(你從你的方法返回的)不是FileStreamResult(你在你的測試中把它扔到什麼地方)。它們都從FileResult繼承,但爲了讓您的測試通過,FileContentResult需要繼承FileStreamResult

或者是一個錯誤的類型?

+0

沒有,只是我在這個晚上成爲一個白癡! – ChrisBint 2013-03-07 23:22:19

+0

大聲笑!我們都在@ChrisBint。在我們說話的時候做好。 – 2013-03-07 23:34:04

+0

約翰,希望你得到更多的積分,並可以通過評論貢獻 – 2013-03-07 23:35:55

相關問題