我想结合 MOQ 测试以下方法:
public Company CreateCompany(Company company)
{
UnitOfWork.CompanyRepository.Insert(company);
//Give the user who created a company all permissions
UnitOfWork.CompanyPermissionRepository.Insert(new CompanyPermission
{
Useraccount = UnitOfWork.UseraccountRepository.GetByID(this.GetLoggedInUseraccount(this.Context.Session).Id),
Company = company,
AddUser = true,
CreateProject = true,
DeleteCompany = true,
DeleteFile = true,
DownloadFile = true,
EditCompany = true,
ManageProjectPermission = true,
RemoveUser = true,
UploadFile = true
});
UnitOfWork.Save();
return company;
}
我基本上想检查新CompanyPermission
对象是否已插入存储库:
companyPermissionRepository.Verify(r => r.Insert(companyPermissions.allCompanyPermissions));
这是我的设置:
companyPermissionRepository = new Mock<IGenericRepository<CompanyPermission>>();
unitOfWork.Setup(r => r.CompanyPermissionRepository).Returns(companyPermissionRepository.Object);
我allCompanyPermissions
在单元测试中的对象是使用与 CreateCompany 方法中相同的值创建的,但单元测试失败。我认为这是因为这两个对象具有相同的值,但具有不同的引用——内存中有 2 个对象是“不同的”。它是否正确?我将如何解决它?