小编A.K*_*nov的帖子

使用Moq,如何使用lambda参数模拟方法

我的Repository类中有一个fallowing方法:

public virtual IEnumerable<T> GetAll(Expression<Func<T, bool>> where = null, Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null, Expression<Func<T, object>>[] includeProperties = null)
Run Code Online (Sandbox Code Playgroud)

我想问你,当我传递一些具体的lambda表达式时,如何嘲笑它可以返回一些特定的值?

SettingsRepository.Setup(
           r =>
           r.GetAll(
               It.IsAny<Expression<Func<Settings, bool>>>(),
               It.IsAny<Func<IQueryable<Settings>, IOrderedQueryable<Settings>>>(),
               It.IsAny<Expression<Func<Settings, Object>>[]>())).Returns((Settings[])null);
Run Code Online (Sandbox Code Playgroud)

无论你将使用什么lambda,这都将返回null.

我正在寻找类似的东西:

 Expression<Func<Settings, bool>> asdasd = s => s.SubmissionId==1; 
 SettingsRepository.Setup(
     r =>
     r.GetAll(
         It.Is<Expression<Func<Settings, bool>>>(asdasd),
         It.IsAny<Func<IQueryable<Settings>, IOrderedQueryable<Settings>>>(),
         It.IsAny<Expression<Func<Settings, Object>>[]>()))
    .Returns(() => new[] { new Settings { Submission = ValidSubmission } });
Run Code Online (Sandbox Code Playgroud)

最好的问候,天使

编辑:谢谢你的答案!伊利亚·帕尔金,你说得对!它应该是这样的:

It.Is<Expression<Func<Settings,bool>>>(ex=>ex == null)
Run Code Online (Sandbox Code Playgroud)

"ex"指向表达,我应该作为一个论点传递,对吧?lambda表达式是您预测的类型的委托.现在它正在运作!

 SettingsRepository.Setup(
     r =>
     r.GetAll(
         It.Is<Expression<Func<Settings,bool>>>(ex=>ex == null),
         It.IsAny<Func<IQueryable<Settings>, IOrderedQueryable<Settings>>>(),
                It.IsAny<Expression<Func<Settings, Object>>[]>()))
                          .Returns(() => …
Run Code Online (Sandbox Code Playgroud)

lambda expression moq mocking

7
推荐指数
0
解决办法
3296
查看次数

如何获得满足特定条件的所有顶点组成的子图

文献修订是驻留在我们的域逻辑的特定层的两个对象.

文件表示周围的任何材料一张纸,你能想到的抽象.也就是说 - 每份合同,发票或图纸都可以称为文件.

另一方面,文档的材料表示是修订:建筑工程师在现场接收的纸张列表表示设计者创建的文档修订版.如果由于错误或需求更改而必须更改图形中的某些内容,则会在现场显示新修订 - 同一文档的修订版#2.

版本可能包含指向其他文件 ; 因此,我们可以描述汽车,车门,发动机,车轮等之间的关系,以及每个元素独立演变的可能性,同时保持与其他元素的联系.

显示典型的DAG:

汽车元素 - 文件和修订

我设法使用C#Graph API将所有顶点和边插入到CosmosDB中.我设法遍历图表并执行简单查询,以便查找汽车有多少修改,或者发动机在最初创建时是否有涡轮增压器.但是,我正在努力编写一个复杂的查询,它只返回每个部分或汽车的最新版本,或者返回汽车状态的查询,直到2016-08-10.

该车的状态截至2017-01-03: 成品车

该车的状态可达2016-08-10: 汽车发动机还没有涡轮增压器

当遍历访问顶点的后代(它的"out()")时,我找不到一种方法来获取最近创建的并继续遍历而不挖掘其他顶点.如果你建议我一个表达式,我只会从图片中返回彩色顶点,我将不胜感激.

gremlin tinkerpop3 gremlin-server azure-cosmosdb

2
推荐指数
1
解决办法
369
查看次数