Как вернуть фиктивный объект как ноль
Как говорится в теме, я не знаю, как вернуть макетированный объект как ноль в моем проекте 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
,