Как вернуть фиктивный объект как ноль

Как говорится в теме, я не знаю, как вернуть макетированный объект как ноль в моем проекте MVC Testing. Я новичок в создании модульных тестов.

У меня есть действие:

[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 как ноль. К сожалению, я не могу создать экземпляр HttpPostedFileBase абстрактный класс, и я хочу попробовать что-то вроде этого:

var mockImageFile = new Mock<HttpPostedFileBase>();

Но тогда я не знаю, как сделать его нулевым, потому чтоmockImageFile.Object только для чтения Есть идеи?

1 ответ

Решение

Вам не нужно создавать экземпляр, если вы хотите сделать это null, просто делать:

HttpPostedFileBase imageFile = null;

То, что это абстрактный класс, действительно означает, что вы не можете создать его экземпляр, но вполне нормально объявить переменную этого типа и установить для нее значение null,

Другие вопросы по тегам