Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用Hangfire.MemoryStorage对Hangfire实现进行单元测试_C#_Unit Testing_Asp.net Core_Moq_Hangfire - Fatal编程技术网

C# 如何使用Hangfire.MemoryStorage对Hangfire实现进行单元测试

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方法中对作业排队后的解决方案进行了建模。这意味着我没有控制器,我不会将任何东西传递到正在排队等待我的

为了阐明我正在尝试做什么,我有一个方法可以在我的数据库中创建/更新一个项。当像往常一样通过断言该项在内存数据库中进行测试时,总是返回为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-我更新了我的问题