如何将模拟对象作为空返回
本文关键字:返回 对象 模拟 | 更新日期: 2023-09-27 18:18:11
正如主题所说,我不知道如何在我的MVC测试项目中返回一个模拟对象为空。我是单元测试的新手。
我有一个动作:
[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
为只读状态。什么好主意吗?
你不需要创建一个实例,如果你想让它null
,只要做:
HttpPostedFileBase imageFile = null;
它是一个抽象类,这确实意味着您不能创建它的实例,但是声明该类型的变量并将其设置为null
是完全可以的。