【发布时间】:2012-12-03 09:00:51
【问题描述】:
public User AddTags(int userId, List<Tag> Tags)
{
var user = GetUserById(userId);
Tags.ForEach( tag => user.Tags.Add(tag));
return _repository.Update(user);
}
public interface IRepository<T> where T:class
{
void Add(T item);
void Remove(T item);
T Update(T item);
}
在测试类中
protected IRepository<User> Repository;
protected UserService Service;
public Mock<IRepository<User>> MockUserRepository = new Mock<IRepository<User>>();
Repository = MockUserRepository.Object;
Service = new UserService(UnitOfWork, Repository);
//I don't quite understand how to mock the Update method.
var result = Service.AddUserTags(1,Tags);
Assert.AreEqual(result.UserTags.Count(),3);
我有一个List<User> users 和一个List<Tag> tags。
我正在使用 EF、NUnit、MOQ 和通用存储库模式。
编辑:
在 GetUserById 中
return _repository.GetAll().Where(_ => _.UserId == userId).SingleOrDefault();
I have mocked it doing the following
MockUserRepository.Setup(_ => _.GetAll()).Returns(Users.AsQueryable());
【问题讨论】:
标签: c# entity-framework unit-testing nunit moq