0
我有以下的單元測試方法:使用ActiveRecord/NHibernate,我可以刪除和刷新沒有沖洗?
void TestOrderItemDelete()
{
using (new SessionScope())
{
var order = Order.FindById(1234);
var originalItemCount = order.OrderItems.Count;
Assert.IsTrue(originalCount > 0);
var itemToDelete = order.OrderItems[0];
itemToDelete.DeleteAndFlush(); // itemToDelete.Delete();
order.Refresh();
Assert.AreEqual(originalCount - 1, order.OrderItems.Count);
}
}
正如你可以從DeleteAndFlush命令後的評論看,我不得不把它從一個簡單的刪除更改獲取單元測試通過。爲什麼是這樣?對於添加OrderItem的其他單元測試,情況也是如此。這只是正常:
void TestOrderItemAdd()
{
using (new SessionScope())
{
var order = Order.FindById(1234);
var originalItemCount = order.OrderItems.Count;
var itemToAdd = new OrderItem();
itemToAdd.Order = order;
itemToAdd.Create(); // Notice, this is not CreateAndFlush
order.Refresh();
Assert.AreEqual(originalCount + 1, order.OrderItems.Count);
}
}
所有這一切都來了,當我開始使用Order.OrderItems關係映射的延時實例,並且必須添加周圍的測試使用(新SessionScope)塊。
任何想法?