[英]Unit test Hangfire with NSubstitute
我正在尝试对我的课程进行单元测试,其中包括一项后台工作。 到目前为止,我正在测试的方法将作业排入队列,如下所示:
public void SendSms(SmsContent content){
....
_backgroundJobClient.Enqueue<ISms>(x => x.Send(content));
....
}
我的第一个单元测试检查是否调用了 BackgroundJobClient,如下所示:
Assert.Equal(1,_backgroundJobClient.ReceivedCalls().Count());
一切正常,但现在我想检查所有参数是否正确发送。 我正在查看HangFire 文档,但我无法弄清楚如何使用 NSubstitute 进行测试。
谢谢!
/* Moq example:
client.Verify(x => x.Create(
It.Is<Job>(job => job.Method.Name == "CheckForSpam" && job.Arguments[0] == comment.Id.ToString()),
It.IsAny<EnqueuedState>());
*/
// Ported to NSubstitute:
_backgroundJobClient.Received().Create(
Arg.Is<Job>(job => job.Method.Name == "CheckForSpam" && job.Arguments[0] == comment.Id.ToString()),
Arg.Any<EnqueuedState>()
);
这仅基于记录的示例。 您需要的确切 arg 匹配代码将取决于您使用的特定类型。
使用此代码:
_backgroundJobClient.ReceivedWithAnyArgs()
.Enqueue<ISms>(x => x.Send(default));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.