Para o projeto em que minha equipe e eu estamos trabalhando, geralmente descobrimos que precisamos de grandes partes do código do andaime. Criar objetos de domínio com valores corretos, configurar simulações para repositórios, lidar com o cache, ... são coisas que ocorrem geralmente durante os testes. Muitas vezes, trabalhamos com os mesmos objetos básicos que são centrais para o nosso domínio (pessoa, ...), portanto muitos testes criam instâncias desses objetos para outros objetos trabalharem. Como temos muitas soluções diferentes usando o domínio base, esse tipo de código geralmente se espalha por essas soluções.
Eu estive pensando em criar classes comuns que fazem muito desse andaime. Isso nos permitiria solicitar uma pessoa totalmente instanciada com tudo configurado (acesso via repositório, armazenamento em cache ...). Isso remove o código duplicado de nossos testes de unidade individuais, mas também significa que há uma grande quantidade de código que provavelmente faz 'muito' por teste (pois configuraria um objeto completo e não apenas as partes necessárias).
Alguém já fez isso? Existem insights, comentários, pensamentos ... você pode oferecer que possa validar ou invalidar essa abordagem?