BackgroundJob.Schedule引发异常

问题描述

我正在从事一个项目并为HttpHandlers编写单元测试。 在运行测试时,此行

BackgroundJob.Schedule(() => PokeRequestedChat(c.Id,1),TimeSpan.FromSeconds(60));

给出异常ex => {“ JobStorage。当前属性值尚未初始化。您必须在使用Hangfire客户端或服务器API之前进行设置。” 否则项目在服务器上运行正常。仅在运行xUnit测试时才会发生此异常。

我是C#的新手,不了解hangfire

解决方法

您不能编写单元测试BackgroundJob.Schedule方法,因为您需要Hangfire的主机,并且需要在应用中注册hangfire,所以可以尝试为Hangfire编写集成测试,或者只是测试您的PokeRequestedChat方法,或者编写一些封装BackgroundJob.Schedule并对其进行模拟。

,

通过在测试类中添加此行来解决问题

JobStorage.Current = new SqlServerStorage("connectionString");