Dificuldade com testes

Desde que ingressei no mercado tenho me interessado bastante em boas práticas de desenvolvimento de software, especialmente testes.

Gostei muito da técnica TDD para desenvolver orientado a testes unitários, mas até onde eu entendi, para que o TDD funcione é preciso que haja uma camada de domínio na aplicação, ou seja, que as regras de negócio devem estar em uma camada separada, desacoplada da interface e até mesmo dos mecanismos de persistência do sistema.

Assim, à medida que essa camada de domínio vai sendo integrada com outras funcionalidades, passamos então a testes de integração, para integrá-las ao banco de dados, outros componentes de software, etc …

Nesse cenário, as minhas dificuldades são as seguintes:

1 - Não consigo encontrar material na Web que condense essas informações: há muita coisa sobre TDD e testes unitários, mas não encontro muita coisa sobre testes de integração e como essas ferramentas/processos deveriam trabalhar juntas

2 - Particularmente, não vejo espaço para aplicar testes unitários dentro da arquitetura em que eu trabalho, justamente porque não há essa camada de domínio que eu citei, pode ser que o meu equívoco seja esse

3 - Há alguma ferramenta específica para testes de EJBs ?