public void CreateFuncionarioServiceValidationAndPersistenceTest() { //Arrange Funcionario funcionario = ObjectMother.GetFuncionario(); //Fake do repositório var repositoryFake = new Mock<IFuncionarioRepository>(); repositoryFake.Setup(r => r.Save(funcionario)).Returns(funcionario); //Fake do dominio var funcionarioFake = new Mock<Funcionario>(); funcionarioFake.As<IObjectValidation>().Setup(b => b.Validate()); IFuncionarioService service = new FuncionarioService(repositoryFake.Object); //Action service.Create(funcionarioFake.Object); //Assert funcionarioFake.As<IObjectValidation>().Verify(b => b.Validate()); repositoryFake.Verify(r => r.Save(funcionarioFake.Object)); }