我正在尝试测试使用两个不同接口的方法。使用Moq,我可以配置interfaces方法并设置一个return对象,但是无论我设置为Returns,只是执行的第一个方法都返回值,第二个方法返回null。
这是一个例子:
接口1
public interface IUserRepository
{
User GetUserById(int id);
}
Run Code Online (Sandbox Code Playgroud)
接口2
public interface ICallApiService
{
ApiResponseDto ValidateUser();
}
Run Code Online (Sandbox Code Playgroud)
我要测试的课程
public class UserServices : IUserServices
{
private IUserRepository _userRepository;
private ICallApiService _callApiService;
public UserServices(IUserRepository userRepository, ICallApiService callApiService)
{
_userRepository = userRepository;
_callApiService = callApiService;
}
public User GetUserById(int id)
{
//result always have a value set to result
var result = _callApiService.ValidateUser();
//result2 is always null
var result2 = _userRepository.GetUserById(result.UserId);
return result2;
}
}
Run Code Online (Sandbox Code Playgroud)
测试方法
[TestMethod]
public void TestMethod1()
{ …Run Code Online (Sandbox Code Playgroud)