gpt4 book ai didi

c# - 我应该在 n 层应用程序中测试哪一层

转载 作者:太空宇宙 更新时间:2023-11-03 21:43:56 25 4
gpt4 key购买 nike

我有一个 4 层应用程序

1)演示(MVC)
2)服务(WCF)
3) 业务
4)数据

我的服务层中的一些方法执行许多其他子流程,例如,

public OrderResponse PlaceOrder(OrderRequest request)
{
if (CheckForSufficientStock(request.ItemId)) {
ReserveStock(request.ItemId);
ProcessPayment(request.CustomerPaymentDetails);
RemoveStockFromInventory(request.ItemId);
ArrangeForShipping(request.CustomerDetails);
AddToOrderHistory(request);
}
}

我开始学习如何编写单元测试,有几个问题

1) 我应该为哪一层编写单元测试?我是否为 MVC 项目中的 Controller 编写单元测试?或者我是否必须为服务层中的每个方法编写单元测试?还是两者兼而有之?

2) 如果我必须为 MVC 和服务层编写单元测试,我的说法对吗,我的 MVC 项目中的单元测试将测试 PlaceOrder,而测试我的服务层的单元测试将测试所有子ReserveStock、ProcessPayment 等函数?

最佳答案

通常您需要端到端测试以及单元测试。我不想解释基本概念,只是想根据我自己的经验列出一些最佳实践。

为了进行单元测试,一次只测试一层,方法是模拟它所基于的层。例如,当您测试业务层时,您应该模拟数据访问层。通过模拟下面的层,您可以在逻辑上隔离要测试的代码 stub ,而无需触及其他层。这种方法不仅易于使用,而且还可以防止测试太多东西并得到误报。您还可以准备测试夹具以确保每次运行测试时,您实际上都在进行试运行

以下是您可以用来进行单元测试的一些流行技术:

  • 要在 View 层测试 Javascipt,您可以使用 Jasmine
  • 要测试 C# 代码,您可以使用 MSTestnUnitxUnit
  • 要模拟 C# 层,您可以使用 Moq
  • 要进行端到端测试,您可以使用 Selenium

关于c# - 我应该在 n 层应用程序中测试哪一层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18007728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com