2014-05-19 62 views
1
Database.Setup(x => x.Update(It.IsAny<Subscription>())) 
        .Callback<object>(sub => SavedSubscription = sub as Subscription); 

此行适用于PetaPoco。由于项目的要求,必须切换到小巧玲珑的(并且也不得不为了增加DapperExtensions有CRUD方法),所以现在我收到此错误:单元测试Dapper更新

An expression tree may not contain a call or invocation that uses optional arguments

任何想法如何处理这个问题?

回答

1

您不能使用Moq来模拟具有可选参数的方法(如Updatedoes)。有关更多详细信息,请参阅this question,但您坚持将方法的所有参数指定为Update方法。

请注意,这是框架固有的限制,而不是Moq;您无法将具有默认参数的方法传递给Expression。 Jon Skeet给出了一个很好的示范,为什么here