Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 如何对正确插入的外键进行单元测试_Entity Framework_Unit Testing - Fatal编程技术网

Entity framework 如何对正确插入的外键进行单元测试

Entity framework 如何对正确插入的外键进行单元测试,entity-framework,unit-testing,Entity Framework,Unit Testing,我有一个订单,它有许多orderitems现在外键是orderitem中的order生成的,所以我必须检查每个orderitems是否都有正确的order外键。这意味着orderitem中的Orderid应该等于该特定的顺序。断言中应该包含什么 我的域类如下 public class Order { public int Id { get; set; } public Employee Employee { get; set; } public Location Fr

我有一个订单,它有许多orderitems现在外键是orderitem中的order生成的,所以我必须检查每个orderitems是否都有正确的order外键。这意味着orderitem中的Orderid应该等于该特定的顺序。断言中应该包含什么

我的域类如下

public class Order

{

    public int Id { get; set; }
    public Employee Employee { get; set; }
    public Location FromLocation { get; set; }
    public Location ToLocation { get; set; }
    public DateTime OrderDate { get; set; }
    public List<OrderItem> OrderItems { get; set; }
    public List<OrderDispatch> OrderDispatches { get; set; }
    public OrderStatus Status { get; set; }
}

public class OrderItem
{
    public int Id { get; set; }
    public int Quantity { get; set; }
    public Order Order { get; set; }
    public Product Product { get; set; }


}



[TestMethod]

public void OrderItemsAreAssignProperOrderId()
{

   using (var db = new StockWatchContext())

   {

            Order o = new Order();



            o.OrderDate = DateTime.Now;
            o.Status = OrderStatus.Open;
            o.Employee = db.Employees.Find(8);
            o.FromLocation = db.Locations.Find(4);
            o.ToLocation = db.Locations.Find(1);

            o.OrderItems = new List<OrderItem> {
            new OrderItem {Product = db.Products.Find(1), Quantity = 10}, 

            };

            db.Orders.Add(o);


            db.SaveChanges();

            Assert.AreEqual();

        }
    }
}
}
公共类秩序
{
公共int Id{get;set;}
公共雇员雇员{get;set;}
公共位置FromLocation{get;set;}
公共位置到位置{get;set;}
public DateTime OrderDate{get;set;}
公共列表OrderItems{get;set;}
公共列表OrderDispatches{get;set;}
公共订单状态状态{get;set;}
}
公共类OrderItem
{
公共int Id{get;set;}
公共整数数量{get;set;}
公共秩序{get;set;}
公共产品产品{get;set;}
}
[测试方法]
public void orderItemsAresSignPropertyOrderId()
{
使用(var db=new StockWatchContext())
{
订单o=新订单();
o、 OrderDate=DateTime.Now;
o、 状态=订单状态。打开;
o、 Employee=db.Employees.Find(8);
o、 FromLocation=db.Locations.Find(4);
o、 ToLocation=db.Locations.Find(1);
o、 OrderItems=新列表{
新OrderItem{Product=db.Products.Find(1),Quantity=10},
};
db.Orders.加入(o);
db.SaveChanges();
Assert.AreEqual();
}
}
}
}

如果您针对专用于测试的数据库进行测试,则可以在每个测试方法之前清空表


然后在保存OrderItemsAreasSignPropertyOrderId()方法中的更改后,检查OrderItem表中的所有行是否具有正确的订单id。

您应该首先共享原始方法。在该方法中,我们可以看到您要在单元测试中测试的内容。