NSubsitute 中这样的参数的等效参数匹配器是什么 - "Expression<Func<TEntity, bool>> predicate)"?

What is the equivalent argument matcher for a parameter like this - "Expression<Func<TEntity, bool>> predicate)" in NSubsitute?

我正在尝试为 class 编写单元测试,其中一个依赖项方法将 LINQ 表达式作为传递给它的参数。现在,我嘲笑了这种依赖性。但我试图告诉这个模拟 return 一个对象。我做过的。但是我不知道要传递什么匹配参数 'arg' 作为参数。

我尝试使用建议的解决方案 here,但我无法 100% 真正遵循它。这是答案吗?那有没有办法?

正在测试 class 中的代码:

var user = await _userRepository.GetFirstOrDefaultAsync(predicate: x => 
x.Email.ToLower() == dto.Email.ToLower());

我嘲笑 _userRepository,说 _userRepositoryMock = Substitute.For<IUserRepository>();

现在,尝试在调用时告诉它 return 一个对象:

_userRepositoryMock.GetFirstOrDefaultAsync(not sure what goes 
here).Returns(user);

与此同时,我刚刚通过了 null,就像这个 guy 所做的那样。

_userRepositoryMock.GetFirstOrDefaultAsync(null).Returns(user);

我想你可以使用 argument matchers:

Arg.Any<Expression<Func<User, bool>>>()