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類,但我必須模擬它可能返回的存儲庫。 –