0

我的控制器中有以下方法;

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

但是,响应始终为空。如果我在控制器代码中设置断点fcr,它不为空。

为了澄清,file是一个模拟对象并且不为空。

4

1 回答 1

1

我可能遗漏了一些东西,但是FileContentResult(您从方法返回的)不是FileStreamResult(您在测试中将其转换为的)。它们都继承自FileResult,但为了让您的测试通过,FileContentResult需要继承自FileStreamResult

或者这是一个错误的类型?

于 2013-03-07T23:19:47.467 回答