Nesse exemplo não precisava mockar o módulo "validator", era só usar injeção de dependência e pronto. Aí no teste era só passar um stub que responde ao método isEmail
.
Mas respondendo a sua dúvida, mockar dependências em testes unitários te ajuda a isolar unidades do sistema. Por exemplo, se tiver alguma coisa errada no validador de e-mails, o teste que deveria falhar é o teste do validador, não quem depende dele. Isso faz com que os testes unitários sejam mais assertivos sobre o "subject" que está sendo exercitado.
Nada impede que no teste do EmailValidatorAdapter
vc use um e-mail invalido e o mock retorne que o e-mail é valido, o objetivo é exercitar as responsabilidades do adapter, não da validação em si.