ASP.NETMVC:如何在数据驱动环境中模拟数据库?
创始人
2024-11-12 05:30:19
0

在ASP.NET MVC中,可以使用Moq库来模拟数据库以进行单元测试。以下是一些示例代码:

首先,创建一个存储库接口,该接口将定义所有您需要模拟的数据库操作:

public interface IProductRepository { IEnumerable GetAllProducts(); Product GetProductById(int productId); void AddProduct(Product product); void UpdateProduct(Product product); void DeleteProduct(int productId); }

然后实现该接口的类:

public class ProductRepository : IProductRepository { private List products = new List() { new Product() {ProductId = 1, ProductName = "iPhone X"}, new Product() {ProductId = 2, ProductName = "Samsung Galaxy S9"}, new Product() {ProductId = 3, ProductName = "Google Pixel 2"} };

public void AddProduct(Product product)
{
    products.Add(product);
}

public void DeleteProduct(int productId)
{
    var product = products.FirstOrDefault(x => x.ProductId == productId);
    if (product != null)
        products.Remove(product);
}

public IEnumerable GetAllProducts()
{
    return products;
}

public Product GetProductById(int productId)
{
    return products.FirstOrDefault(x => x.ProductId == productId);
}

public void UpdateProduct(Product product)
{
    var old_product = products.FirstOrDefault(x => x.ProductId == product.ProductId);
    if (old_product != null)
    {
        products.Remove(old_product);
        products.Add(product);
    }
}

}

这是一个简单的Product模型:

public class Product { public int ProductId { get; set; } public string ProductName { get; set; } }

现在,我们可以使用Moq来模拟这个存储库以进行单元测试:

[TestClass] public class ProductControllerTests { [TestMethod] public void Index_ReturnsAViewResult_WithAListOfProducts() { // Arrange var mockRepo = new Mock(); mockRepo.Setup(repo => repo.GetAllProducts()) .Returns(GetTestProducts()); var controller = new

相关内容

热门资讯

最强版wpk官网下载链接,we... 最强版wpk官网下载链接,wepoker辅助透视软件,一贯真的是有挂(有挂技巧)1、下载好wepok...
黑科技辅助挂!wepoker透... 黑科技辅助挂!wepoker透视脚本免费,德普之星透视辅助软件是真的吗,一直存在有挂(有挂存在)1、...
最强版哈糖大菠萝助手,poke... 最强版哈糖大菠萝助手,poker world辅助,本来真的是有挂(详细教程)运辅助工具,进入游戏界面...
2026版教程!sohoo开挂... 2026版教程!sohoo开挂辅助,智星德州辅助译码插件靠谱吗,一直是真的有挂(有挂辅助)智星德州辅...
最强版购买的wpk辅助在哪里下... 最强版购买的wpk辅助在哪里下载,德州真人透视脚本,竟然有挂(有挂方针)1、许多玩家不知道辅助怎么退...
规律辅助挂!佛手在线是不是有挂... 规律辅助挂!佛手在线是不是有挂,德扑之星透视软件免费入口官网,一直确实有挂(有挂详情)1、下载好德扑...
最强版wepoker私人局可以... 最强版wepoker私人局可以透视,sohoo竞技联盟辅助器,切实是真的有挂(有挂攻略)1、该软件可...
据权威媒体报道!佛手在线大菠萝... 据权威媒体报道!佛手在线大菠萝技巧,德普之星透视软件免费入口官网,本来是有挂(有挂技巧)1、用户打开...
最强版wepoker透视脚本视... 最强版wepoker透视脚本视频,wpk辅助软件,一贯存在有挂(讲解有挂)1、超多福利:超高返利,海...
近年来!wepoker私人局透... 近年来!wepoker私人局透视,智星菠萝透视,总是真的有挂(有挂详细)智星菠萝透视辅助器是一种具有...