[\\\\到具有多个存储库的NUnit测试控制器[保留]

问题描述 投票:0回答:2

我有一个带有控制器的.net核心API,该控制器可以处理SQL数据库中的多个表,并且我正在使用存储库模式设计来进行最佳实践。

我的Home控制器的构造函数注入看起来像这样:

 private IUploadRepository _uploadRepository;
 private ISalesRepository _salesRepository; 
 private ITRSalesRepository _trsalesRepository;
 private ILocalPurchaseRepository _localRepository;

 public HomeController(
      IUploadRepository uploadRepository,
      ISalesRepository salesRepository,
      ITRSalesRepository trsalesRepository,
      ILocalPurchaseRepository localRepository
 )
 {
     this._uploadRepository = uploadRepository;
     this._salesRepository= salesRepository;
     this._trsalesRepository= trsalesRepository;
     this._localRepository= localRepository;
 }

[HttpPost]
public IActionResult PostUpload([FromBody] UploadModel upload)
{
   uploadRepository.Add(upload); // the uploadRepository will save to db
   return Created("Post", upload)
}

我已经在StartUp.cs中为这些存储库添加了DI,并且我已验证Home控制器(方法)的行为符合预期。它能够读取/写入SQL数据库。

我的问题是,我如何使用NUnit测试来测试此Home控制器的Post操作方法?我有多种利用这些存储库的CRUD方法,所以通常我想对它们进行NUnit测试。>

我尝试对家庭测试类使用构造函数注入,但这不起作用。

谢谢您的帮助!

日期:我添加了Post方法作为我想在NUnit上进行测试的测试。

我有一个带有控制器的.net核心API,该控制器可以处理SQL数据库中的多个表,并且我正在使用存储库模式设计来实现最佳实践。我的Home控制器的构造函数注入看起来是...

asp.net-core asp.net-web-api nunit-3.0
2个回答
1
投票

您可以使用像Moq这样的库来创建所需类的模拟物


0
投票

要进行单元测试HomeController,您无需实例化外部依赖项。您可以将它们作为Mock Objects。那里有许多可以为您完成工作的模拟框架。

© www.soinside.com 2019 - 2024. All rights reserved.