2014-04-02 55 views
1

我有一個訂單,它有很多orderitems現在外鍵是orderite in orderitem生成的,所以我必須檢查每個orderitems是否得到正確的Order外鍵。這意味着訂單中的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(); 

     } 
    } 
} 
} 
+0

你應該首先分享你的原始方法。我們可以看到你想在單元測試中測試什麼。 – Pawan

回答

0

如果要針對一個專門的測試數據庫測試,可以清空每一個TestMethod的前表。

然後在OrderItemsAreAssignProperOrderId()方法中的SaveChanges之後,檢查OrderItem表中的所有行是否具有正確的Order id。