Moq和嘲笑的新特点。测试一个具有通用RepositoryFactory的类,并使用它的几个存储库。我应该像这样初始化还是有更好的方法?正确嘲讽通用方法
Mock<IRepositoryFactory> factory;
Mock<IRepository<User>> userRepository;
Mock<IRepository<Role>> roleRepository;
Mock<IRepository<Meeting>> meetingRepository;
[TestInitialize()]
public void MyTestInitialize()
{
meetingRepository = new Mock<IRepository<Meeting>>();
//some meeting setup
userRepository = new Mock<IRepository<User>>();
//some user setup
roleRepository = new Mock<IRepository<Role>>();
//some role setup
factory = new Mock<IRepositoryFactory>();
factory.Setup(f => f.CreateRepository<Meeting>()).Returns(meetingRepository.Object);
factory.Setup(f => f.CreateRepository<User>()).Returns(userRepository.Object);
factory.Setup(f => f.CreateRepository<Role>()).Returns(roleRepository.Object);
请注意,我可以更多。
这里我正在做这一切在我的初始化方法,但我猜我应该单独做或别的什么。
那么我可以有更多的原因是,这是一个WCF服务类,实现了几个服务合同,我目前不使用TDD。该服务只有一个RepositoryFactory类,但我必须模拟它可能返回的存储库。 –