1

トピックにあるように、MVC テスト プロジェクトでモック オブジェクトを null として返す方法がわかりません。単体テストの作成は初めてです。

アクションがあります:

[HttpPost]
public ActionResult Edit(ClubToAddVM  clubToAddVm, HttpPostedFileBase imageFile)
{
    if (ModelState.IsValid)
    {
        if (imageFile!=null)
        {
            clubToAddVm.ImageMimeType = imageFile.ContentType;
            clubToAddVm.ImageData = new byte[imageFile.ContentLength];
            imageFile.InputStream.Read(clubToAddVm.ImageData, 0, imageFile.ContentLength);
        }
    }
    ...
}

そして、テストで imageFile オブジェクトを null として渡したいと思います。残念ながら、HttpPostedFileBase抽象クラスのインスタンスを作成することはできません。次のようなものを試してみたいと思います:

var mockImageFile = new Mock<HttpPostedFileBase>();

mockImageFile.Objectしかし、読み取り専用であるため、nullにする方法がわかりません 。何か案は?

4

1 に答える 1

3

インスタンスを作成したい場合は、インスタンスを作成する必要はありませnullん。

HttpPostedFileBase imageFile = null;

それが抽象クラスであるということは、実際にはそのインスタンスを作成できないことを意味しますが、その型の変数を宣言して に設定することはまったく問題ありませんnull

于 2014-08-16T11:47:58.197 に答える