验证方法调用带有表达式的通用方法

时间:2019-05-14 12:24:20

标签: c# moq

我有一个接口IBackgroundJobClient,它的扩展方法为Enqueue

 void Enqueue<T>(this IBackgroundJobClient client, Expression<Action<T>> action);

我这样称呼

 void schedule(int id) 
{

     _job.Enqueue<FileUploadService>(x => x.UploadFile(id));
 }

使用Moq我正在尝试验证是否调用了入队

  private Mock<IBackgroundJobClient> _jobClient =  new Mock<IBackgroundJobClient>();

在测试中,我试图验证其是否调用过一次

 schedule();
 _jobClient.Verify(x => x.Enqueue(It.IsAny<Expression<Action<FileUploadService>>>()), Times.Once);

以下是我遇到的错误

  

System.NotSupportedException:对扩展方法的无效验证:   x =>   x。入队(It.IsAny >>())   在   Moq.Mock.ThrowIfVerifyExpressionInvolvesUnsupportedMember(Expression   验证,MethodInfo方法)在C:\ projects \ moq4 \ src \ Moq \ Mock.cs:line中   780

如何验证方法是否被调用过

0 个答案:

没有答案