如何对没有模型文件夹的控制器进行单元测试



我创建了一个MVC项目,但没有创建模型,下面是我的控制器代码,需要创建单元测试。我检查了多个文档,这些文档告诉您在单元测试期间使用模型类,但是正如我所提到的,我没有模型类。有没有办法在asp.net中测试这个api?

[HttpPost]
public JsonResult NetWorth(decimal chequing, decimal savTax, decimal raiDayFund, decimal savFun, decimal savTravel, decimal saveDevel)
{
decimal totalAssets = chequing + savTax + raiDayFund + savFun + savTravel + saveDevel;
return Json(totalAssets);
// return View();
}

将逻辑放入控制器层通常是一种糟糕的做法。您更喜欢有一个逻辑层来进行计算(chequing+savTax+raiDayFund+savFun+savTravel+saveDevel(。该层可以很容易地进行单元测试。

public class CalculationService
{
public decimal CalculateTotalAssets(decimal chequing, decimal savTax, decimal raiDayFund, decimal savFun, decimal savTravel, decimal saveDevel)
{
return chequing + savTax + raiDayFund + savFun + savTravel + saveDevel;
}
}

我希望这能帮助你设计你的应用程序。

创建测试不需要模型。

[TestMethod]
public void Net_Worth_Test(){
// Arrange: define your controller here
HomeController controller = new HomeController();
// Act: Pass your parameters to the method and get the result
JsonResult result = controller.NetWorth(10, 20, 30, 40, 30, 20) as JsonResult;
// Assert: Check the result with your expected answer.
Assert.IsNotNull(result);
Assert.IsEqual(150, result.Value);

}

最新更新