![](/img/trans.png)
[英]How to unit test async methods of Entity Framework with a multiple clauses
[英]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引用,現在出現以下錯誤:
提前致謝!
您所說的是集成測試而不是單元測試。
您將擁有:
您可以通過多種方式做到這一點,一種是在代碼中,另一種是只與端點對話的代碼,根本不需要實例化控制器。
您必須確保擁有的是一種以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.