我的控制器中有以下方法;
[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。如果我在Controller代码中的fcr
上设置断点,则它不为空。
为了澄清,file
是一个模拟对象,不是空的。
答案 0 :(得分:1)
我可能遗漏了一些东西,但FileContentResult
(你从方法中返回的内容)不是FileStreamResult
(你在测试中投入的内容)。它们都继承自FileResult
,但为了让您的测试通过,FileContentResult
需要继承FileStreamResult
。
或者这是一种错误的类型?