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>>>()
我正在尝试为 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>>>()