我有一个带有控制器的.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控制器的构造函数注入看起来是...
您可以使用像Moq这样的库来创建所需类的模拟物
要进行单元测试HomeController
,您无需实例化外部依赖项。您可以将它们作为Mock Objects。那里有许多可以为您完成工作的模拟框架。