首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BackgroundJob.Schedule抛出异常

BackgroundJob.Schedule抛出异常
EN

Stack Overflow用户
提问于 2020-09-08 13:45:12
回答 3查看 181关注 0票数 0

我正在为HttpHandlers做一个项目和写作单元测试。关于运行测试--本行

代码语言:javascript
复制
BackgroundJob.Schedule(() => PokeRequestedChat(c.Id, 1), TimeSpan.FromSeconds(60));

给出一个异常ex=> {"JobStorage.Current属性值尚未初始化。必须在使用Hangfire客户端或服务器API之前设置它。“}否则项目在服务器上运行良好。此异常仅在运行xUnit测试时发生。

我是c#的新手,对绞刑一无所知。

EN

回答 3

Stack Overflow用户

发布于 2020-09-08 14:40:55

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

票数 0
EN

Stack Overflow用户

发布于 2020-09-08 14:51:01

通过在Test类中添加这一行解决了这个问题

代码语言:javascript
复制
JobStorage.Current = new SqlServerStorage("connectionString"); 
票数 0
EN

Stack Overflow用户

发布于 2021-10-29 12:23:19

您可以通过这一行代码解决错误(它为JobStorage.Current创建一个模拟对象):

代码语言:javascript
复制
JobStorage.Current = Substitute.For<SqlServerStorage>(@"Server=.\sqlexpress;Database=test;Trusted_Connection=True;");

我在这个示例中使用了NSubstitute,但是您可以使用Moq或其他库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63795249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档