Redirecionando stdout de outro programa em C ++

Estou escrevendo um teste de unidade e, portanto, não posso alterar o código dentro do arquivo que estou testando. O código que estou testando tem mensagens em cout que estou tentando redirecionar para um arquivo para verificar se o programa está exibindo as mensagens corretas. Alguém tem uma maneira de redirecionar o stdout em outro programa que não cause um atraso? Eu tentei freopen () e isso faz com que meu programa seja interrompido por algum motivo.