我有一个4层应用程序我应该在n层应用程序
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项目中为我的控制器编写单元测试?还是必须为我的服务层中的每个方法编写单元测试?或两者? 2)如果我必须为MVC &服务层编写单元测试,我是否可以说,我的MVC项目中的单元测试将测试PlaceOrder,并且单元测试测试我的服务层将测试所有的子功能,例如ReserveStock,ProcessPayment等?
另外考虑看看[NFluent](https://github.com/tpierrain/NFluent)一个非常强大的符合人体工程学的断言库[AutoFixture](https://github.com/AutoFixture),它可以帮助你如果你想要进行自动化测试,你可以尽量减少单元测试的'安排'阶段和[SpecFlow](http://www.specflow.org/)! – MaxSC