我們是兩個學生寫我們的學士論文,我們開發了一個Windows應用程序,它應該能夠幫助餐廳進行各種溝通過程。從根本上說,它應該能夠呈現從客人發送給它的那一刻起的訂單信息。如何在NUnit中編寫集成測試?
我們在開發過程中忽略了測試,但現在決定編寫單元測試。不過,我們發現我們現在可以寫入系統的最適合的測試是集成測試,因爲我們類中的所有方法都通過LINQ to SQL綁定到SQL存儲過程。我們知道使用存根來僞造對數據庫的依賴關係,但是當我們的數據庫已經與所有函數一起實現時,我們認爲它會給我們提供更多的價值來將幾種方法作爲一個集成測試一起測試。
如下面的代碼所示,我們試圖按照單元測試的指導方針進行,但這是編寫集成測試的正確方法嗎?
[Test]
public void SendTotalOrder_SendAllItemsToProducer_OneSentOrder()
{
//Arrange
Order order = new Order();
Guest guest = new Guest(1, order);
Producer producer = new Producer("Thomas", "Guldborg", "Beverage producer");
DataGridView dataGridView = new DataGridView { BindingContext = new BindingContext() };
order.MenuItemId = 1;
order.Quantity = 1;
//Act
guest.AddItem();
dataGridView.DataSource = guest.SendOrderOverview();
guest.SendOrder(dataGridView);
dataGridView.DataSource = producer.OrderOverview();
var guestTableOrder = producer.OrderOverview()
.Where(orders => orders.gtid == guest.GuestTableId)
.Select(producerOrder => producerOrder.gtid)
.Single();
//Assert
Assert.That(guestTableOrder, Is.EqualTo(guest.GuestTableId));
}
非常感謝您的徹底解答!這是高度讚賞!我現在已經實現了你建議的大部分要點。實際上,這是我第一次進行集成測試,因此在做什麼和不該做什麼時獲得這種全面的解釋非常有價值:-) –