Мы являемся двумя студентами, которые пишут наш диплом бакалавра, и мы разработали приложение для Windows, которое должно помочь ресторану в различных коммуникационных процессах. По сути, он должен быть в состоянии представить информацию о заказе с момента подачи гостя, отправленного ему на него.Как написать интеграционный тест в NUnit?
Мы пропустили тестирование во время разработки, но решили написать модульные тесты сейчас. Тем не менее, мы выяснили, что наиболее подходящим тестом, который мы можем записать в нашу систему, являются интеграционные тесты, потому что все методы в наших классах связаны с хранимыми процедурами SQL через LINQ to 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));
}
Большое спасибо за ваш тщательный ответ! Это высоко ценится! В настоящее время я выполнил большинство предложенных вами моментов. На самом деле, это мой первый интеграционный тест, поэтому полезно получить такое всеобъемлющее объяснение в том, что делать и что не делать :-) –