小编Gab*_*ssa的帖子

具有多个接口的模拟类

我正在尝试测试使用两个不同接口的方法。使用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)

c# unit-testing interface moq .net-core

0
推荐指数
1
解决办法
53
查看次数

标签 统计

.net-core ×1

c# ×1

interface ×1

moq ×1

unit-testing ×1