Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么在测试模拟单元时返回实体框架的空存储库实现_C#_Asp.net Core_Mocking - Fatal编程技术网

C# 为什么在测试模拟单元时返回实体框架的空存储库实现

C# 为什么在测试模拟单元时返回实体框架的空存储库实现,c#,asp.net-core,mocking,C#,Asp.net Core,Mocking,hi iam与ef一起使用模拟单元测试 当测试生成我的测试失败时,当调试测试我得到以下错误 System.ArgumentNullException:'值不能为null。' [测试类] 公共类角色测试2 { private Mock\u Mock存储库; 私人Iuser服务(u服务);; 模拟工作; 模拟安全服务; 模拟制图器; 名单所列国家; [测试初始化] 公共无效初始化() { _mockRepository=newmock(); _mockUnitWork=新建Mock(); _mapp

hi iam与ef一起使用模拟单元测试 当测试生成我的测试失败时,当调试测试我得到以下错误

System.ArgumentNullException:'值不能为null。'

[测试类] 公共类角色测试2 {

private Mock\u Mock存储库;
私人Iuser服务(u服务);;
模拟工作;
模拟安全服务;
模拟制图器;
名单所列国家;
[测试初始化]
公共无效初始化()
{
_mockRepository=newmock();
_mockUnitWork=新建Mock();
_mapper=newmock();
_ISecurityAuthorizationService=new Mock();
_service=new AdminCentral.NetCore.ServiceLayer.EFServices.UserService(\u mockUnitWork.Object、\u mapper.Object、\u isecurityauthorizationservice.Object);
//_service=new UserService(_mockUnitWork.Object,_mockRepository.Object);
listCountry=新列表(){
新用户(){IdCode=1,Name=“US”},
新用户(){IdCode=2,Name=“India”},
新用户(){IdCode=3,Name=“俄罗斯”}
};
}
[测试方法]
公共无效国家/地区
{
//安排
_mockRepository.Setup(x=>x.count(10)).Returns(listCountry);
//表演
列表结果=_service.count(10)作为列表;
//断言
Assert.IsNotNull(结果);
Assert.AreEqual(3,results.Count);
}
这是我的代码层Servic 我肯定返回空的IUnitof实体

  public class UserService : BaseService, IUserService
        {
            #region Fields
              private readonly IUnitOfEntity _iUnitOfEntity;
              private readonly DbSet<User> _users;
              private readonly IMapper _mapper;
              private readonly ISecurityAuthorizService _iSecurityAuthorizService;
            #endregion


            public UserService(IUnitOfEntity unitOfEntity, IMapper mapper,   ISecurityAuthorizService isecurityauthorizservice)
            {
                _iUnitOfEntity = unitOfEntity;
                _users = _iUnitOfEntity.Set<User>();
                _mapper = mapper;
                _iSecurityAuthorizService = isecurityauthorizservice;
            }
       public IList<User> count(int id)
            {
                   return _users.Where(x => x.UserId == id).ToList();
            }
公共类UserService:BaseService、IUserService
{
#区域字段
私有只读IUnitof Entity(IUnitof Entity);
私有只读数据库集用户;
专用只读IMapper\u映射器;
专用只读ISecurityAuthorizationService _ISecurityAuthorizationService;
#端区
公共用户服务(IUnitOfEntity unitOfEntity、IMapper映射器、iSecurityAuthorization服务iSecurityAuthorization服务)
{
_i实体单位=实体单位;
_用户=_iUnitOfEntity.Set();
_映射器=映射器;
_ISecurityAuthorizationService=ISecurityAuthorizationService;
}
公共IList计数(整数id)
{
返回_users.Where(x=>x.UserId==id.ToList();
}

调用UserService的构造函数中的
\u iunitof entity.Set(),但是,此方法未被模拟,将根据实现引发异常或返回null。 您可能需要添加一个模拟实现,该实现返回一个用户列表

//Arrange
_mockRepository.Setup(x => x.count(10)).Returns(listCountry);
_mockUnitWork.Setup(x => x.Set()).Returns(listUsers);
//Arrange
_mockRepository.Setup(x => x.count(10)).Returns(listCountry);
_mockUnitWork.Setup(x => x.Set()).Returns(listUsers);