【发布时间】:2016-08-27 15:17:42
【问题描述】:
我有一个这样的模型:
public class Products
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Product_D { get; set; }
[Required(ErrorMessage="Product is required")]
[Display(Name="Product Name")]
public string Product_Name { get; set; }
[Required(ErrorMessage="Photo of the product is required")]
[Display(Name="Product Photo")]
public byte[] Product_Photo { get; set; }
[NotMapped]
public HttpPostedFileBase Image { get; set; }
[Required(ErrorMessage="Enter the Quantity Available")]
[Display(Name = "Product Quantity")]
public int Product_Quantity { get; set; }
[Required(ErrorMessage="Enter the price of the product")]
[Display(Name = "Product Price")]
public int Product_Price { get; set; }
[Required(ErrorMessage = "Choose your category")]
public string Category { get; set; }
[NotMapped]
public List<System.Web.Mvc.SelectListItem> CategoryList { get; set; }
[Required(ErrorMessage = "Choose your category")]
public string Gender { get; set; }
[NotMapped]
public List<System.Web.Mvc.SelectListItem> GenderList { get; set; }
}
我正在尝试模拟数据库,我正在向我的模拟数据库添加产品,我能够为所有其他数据类型提供值,但我不确定如何使用文件。
public void MockRepo()
{
IList<Products> products = new List<Products>
{
new Products { Product_D = 1, Product_Name = "C# Unleashed",Product_Quantity = 20, Product_Price = 20 },
new Products { Product_D = 2, Product_Name = "ASP.Net Unleashed",Product_Quantity = 20, Product_Price = 30 },
new Products { Product_D = 3, Product_Name = "Silverlight Unleashed",Product_Quantity = 20, Product_Price = 100 }
};
//Mock Products using MOQ
Mock<IProduct> mockproductrepo = new Mock<IProduct>();
//return all products
mockproductrepo.Setup(r => r.FindAll()).Returns(products);
// returns products by name
mockproductrepo.Setup(r => r.FindByName(It.IsAny<string>())).Returns(products.Single());
//returns products by id
mockproductrepo.Setup(r => r.FindById(It.IsAny<int>())).Returns(products.Single());
}
我认为提供图像文件的路径对我没有帮助。使用文件系统会使我的测试变慢。即使我这样做,我也应该将图像转换为 Bytes 。我该如何处理?提前致谢
【问题讨论】:
标签: asp.net-mvc file unit-testing