我有一個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