簡體   English   中英

如何使用Entity Framework創建單元測試以測試數據插入方法?

[英]How to create unit test for testing data insertion methods with Entity Framework?

我正在嘗試為將數據插入ASP.NET MVC中的SQL Server數據庫的方法創建單元測試。 我有幾個ActionResult方法可將數據寫入SQL Server數據庫。 這些方法之一是以下方法:

    [HttpPost]
    public ActionResult AddApi(ApiRedirect model)
    {
        try
        {
            List<ApiRedirect> list = dbProducts.ApiRedirects.ToList();
            int companyID = dbProducts.Companies.Where(x => x.CompanyName == model.Company.CompanyName).FirstOrDefault().CompanyID;
            int mappingID = dbProducts.MappingNames.Where(x => x.Name == model.MappingName.Name).FirstOrDefault().MappingID;
            ApiRedirect api = new ApiRedirect();
            api.ApiName = model.ApiName;
            api.CompanyID = companyID;
            api.ApiURL2 = model.ApiURL2;
            api.MappingID = mappingID;
            api.ResponseType = model.ResponseType;

            dbProducts.ApiRedirects.Add(api);
            dbProducts.SaveChanges();

            return View ();
        }
        catch (Exception ex){
            throw ex;
        }
    }

但是,當我在這樣的測試項目中嘗試這樣做時:

[TestClass]
public class ApiRedirectTests
{
    [TestMethod]
    public void AddApiRedirect()
    {
        //Arrange
        var controller = new ApiBrokerController();
        ApiRedirect model = new ApiRedirect();
        model.ApiName = "UnitTest";
        model.CompanyID = 1;
        model.ApiURL2 = "www.UnitTest.com/API";
        model.MappingID = 1;
        model.ResponseType = "json";

        //Act
        controller.AddApi(model);
    }
}

我收到以下錯誤:

在此處輸入圖片說明

我想要一些編寫代碼的測試,檢查代碼是否已插入數據庫並隨后刪除。 最好的方法是什么?

更新我已經向項目添加了MVC引用,現在出現以下錯誤:

在此處輸入圖片說明

提前致謝!

您所說的是集成測試而不是單元測試。

您將擁有:

  • 產生一些數據的呼叫
  • 另一個根據您的標准進行實際測試/斷言
  • 最后一個刪除步驟1中創建的測試數據。

您可以通過多種方式做到這一點,一種是在代碼中,另一種是只與端點對話的代碼,根本不需要實例化控制器。

您必須確保擁有的是一種以API方式創建/刪除數據的方法,因此您需要執行此操作的端點。

如果您不想編寫代碼,也可以使用Postman之類的東西,可以很好地協調所有這些事情。 這樣就可以確保一切正常,從客戶端將使用的端點一直到數據庫。

錯誤編號1

要修復您的錯誤,請將System.web.mvc框架添加到單元測試PM> Install-Package Microsoft.AspNet.Mvc – gh9 20分鍾前

錯誤編號2

您現在需要將System.web版本從4.0升級到5.2

嘗試添加此Nuget軟件包

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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