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

ただし、応答は常にnullです。fcrコントローラコードでブレークポイントをオンに設定した場合、それはnullではありません。

明確にfileするために、はモックオブジェクトであり、nullではありません。

4

1 に答える 1

1

私は何かが欠けているかもしれFileContentResultませんが、(あなたがあなたのメソッドから返すもの)はFileStreamResult(あなたがあなたのテストでそれをキャストしたもの)ではありません。どちらもから継承しFileResultますが、テストに合格するには、FileContentResultから継承する必要がありFileStreamResultます。

それともタイプミスですか?

于 2013-03-07T23:19:47.467 に答える