Para responder sua pergunta diretamente - não, não acredito que seja um anti-padrão quando usado corretamente.
--- Resposta mais detalhada ---
Pela minha experiência, acho que isso depende muito do objetivo do seu teste. Aqui está a regra prática que usei no passado e me ajudou a decidir:
Você está realmente testando uma pequena unidade de código? (Um verdadeiro teste de unidade)
Se sim, descobri que é muito mais fácil criar os dados dentro do próprio teste exatamente porque consigo ver o que está sendo passado. Nesses casos, geralmente procurarei uma biblioteca semelhante ao Jasmine para usar, porque acho que facilita a criação e a manutenção dos dados de teste. Essa é uma preferência pessoal - use o que facilitar o seu trabalho.
Se não, então provavelmente você está testando o próprio sistema. Nesses casos, eu frequentemente carrego dados de uma fonte externa, sendo os motivos aqui:
- Esse teste não é sobre clareza de código para programadores (embora isso ainda seja importante - alguém precisa manter isso), é sobre a execução de tipos diferentes de dados em todo o bloco do sistema para ter certeza de que funciona.
- Frequentemente, escreverei o código do encanamento para carregar e usar os dados de teste, mas os dados em si são criados por outra pessoa (geralmente um membro da equipe de controle de qualidade no meu caso). Essas pessoas geralmente não são programadores, então não posso esperar que elas estejam editando código.
Resposta longa, curta, depende do que você está testando e por quê. Ambas as abordagens são úteis e têm seu lugar - escolha o que funciona melhor para sua situação.