Teste de unidade refere-se ao que você está testando, ao TDD quando está testando.
Os dois são ortogonais.
Teste de Unidade significa, bem, testar unidades individuais de comportamento. Uma unidade individual de comportamento é a menor unidade possível de comportamento que pode ser testada individualmente isoladamente. (Eu sei que essas duas definições são circulares, mas parecem funcionar muito bem na prática.)
Você pode escrever testes de unidade antes de escrever seu código, depois de escrever ou enquanto escreve.
TDD significa (novamente, meio óbvio) permitir que seus testes conduzam seu desenvolvimento (e seu design). Você pode fazer isso com testes de unidade, testes funcionais e testes de aceitação. Geralmente, você usa os três.
A parte mais importante de TDD é o meio D . Você deixa os testes te guiarem . Os testes informam o que fazer, o que fazer a seguir, quando terminar. Eles dizem qual é a API, qual é o design. (Isso é importante: o TDD não se trata de escrever testes primeiro. Existem muitos projetos que escrevem testes primeiro, mas não praticam TDD. Escrever testes primeiro é simplesmente um pré-requisito para permitir que os testes conduzam o desenvolvimento.)