我们是两个学生写我们的学士论文,我们开发了一个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));
}
非常感谢您的彻底解答!这是高度赞赏!我现在已经实现了你建议的大部分要点。实际上,这是我第一次进行集成测试,因此在做什么和不该做什么时获得这种全面的解释非常有价值:-) –