簡體   English   中英

如何在MVC4中測試服務層?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM