![](/img/trans.png)
[英]Creating a Service Layer for MVC4 Applications while honoring Single Responsibility
[英]How to test a Service Layer in MVC4?
我有一個包含三層的Web應用程序:Web>服務>核心。 我剛剛添加了一個Services.Tests單元測試項目,並且試圖弄清楚如何開始。
我已經將Services.Tests項目中的引用添加到Services項目中。 然后,在我的Test類中創建了Services.service類的實例:
[TestClass]
public class CrudTests
{
private readonly SetServices _setService = new SetServices();
[TestMethod]
public void TestMethod()
{
但是我遇到了有關_setService
需要對我的Core項目進行引用的錯誤。
第一個問題:如果Services項目已經引用了我的核心項目,為什么我需要引用它?
我添加了參考並運行了空測試,該測試通過了。 然后,我嘗試調用服務類中的一種基本方法:
[TestMethod]
public void TestMethod()
{
_setService.CreateSet("Test Set", "Test Set Details", null);
但是我得到了providerIncompatileException
。
第二個問題:創建/使用專用測試數據庫的推薦方法是什么?
第三個問題:如何告訴我的測試項目要使用哪個數據庫?
按零件
如果服務項目已經引用了我的核心項目,為什么還需要引用它?
根據此答案 ,項目引用不可繼承。 Services
依賴於Core
事實並不意味着使用Services
任何人都需要了解有關Core
任何知識,或者就此而言,可以使用Core
專門定義的任何邏輯。
創建/使用專用測試數據庫的推薦方法是什么?
它完全取決於什么數據庫,什么ORM,什么框架等。沒有固定的方法來實現。
如何告訴我的測試項目要使用哪個數據庫?
您可以通過相同的方式告訴應用程序執行此操作:通過配置。 只需創建一個DatabaseStub
並在其中對測試數據庫信息進行硬編碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.