C# 如何使用Hangfire.MemoryStorage对Hangfire实现进行单元测试
为了阐明我正在尝试做什么,我有一个方法可以在我的数据库中创建/更新一个项。当像往常一样通过断言该项在内存数据库中进行测试时,总是返回为null。在阅读文档之后,我似乎需要确定是否已将正确的作业添加到Hangfire队列 我已经检查了Hangfire实现的单元测试,但似乎找不到针对内存存储进行测试的方法 在本例中,创建一个mock,然后将其传递给控制器的构造函数。然而,我在启动类的Configure方法中对作业排队后的解决方案进行了建模。这意味着我没有控制器,我不会将任何东西传递到正在排队等待我的作业的方法中 那么我应该如何测试这个呢 以下是我尝试测试的方法之一:C# 如何使用Hangfire.MemoryStorage对Hangfire实现进行单元测试,c#,unit-testing,asp.net-core,moq,hangfire,C#,Unit Testing,Asp.net Core,Moq,Hangfire,为了阐明我正在尝试做什么,我有一个方法可以在我的数据库中创建/更新一个项。当像往常一样通过断言该项在内存数据库中进行测试时,总是返回为null。在阅读文档之后,我似乎需要确定是否已将正确的作业添加到Hangfire队列 我已经检查了Hangfire实现的单元测试,但似乎找不到针对内存存储进行测试的方法 在本例中,创建一个mock,然后将其传递给控制器的构造函数。然而,我在启动类的Configure方法中对作业排队后的解决方案进行了建模。这意味着我没有控制器,我不会将任何东西传递到正在排队等待我的
public async Task SyncDeletedAccounts()
{
try
{
int pastMinutes = 90;
var startDate = DateTime.Now.AddMinutes(0 - pastMinutes);
var client = await this._forceDotComService.GetForceClient();
var deletedIds = await this._forceDotComService.GetDeletedIds<sf.Account>(client, startDate);
if (!deletedIds.Any())
{
this._logger.LogInformation("No deleted accounts");
return;
}
foreach (var deletedId in deletedIds)
{
BackgroundJob.Enqueue<InterconnectorServiceHelper<sf.Account, ic.Account>>(i =>
i.MarkDeleted(deletedId));
}
}
catch (Exception e)
{
this._logger.LogError(e, "AccountService.SyncDeletedAccounts");
throw;
}
}
public异步任务SyncDeletedAccounts()
{
尝试
{
分钟=90;
var startDate=DateTime.Now.AddMinutes(0-passminutes);
var client=等待此消息。_forceDotComService.GetForceClient();
var deletedIds=等待此消息。_forceDotComService.GetDeletedIds(客户端,开始日期);
如果(!deletedIds.Any())
{
此._.logger.LogInformation(“无删除的帐户”);
返回;
}
foreach(deletedIds中的deletedId变量)
{
BackgroundJob.Enqueue(i=>
i、 MarkDeleted(deletedId));
}
}
捕获(例外e)
{
此.u logger.LogError(e,“AccountService.SyncDeletedAccounts”);
投掷;
}
}
向我们显示您要安装的部件代码test@Yogi-我更新了我的问题