Unit Testing bezieht sich auf was Sie testen, TDD zu , wenn Sie testen.
Die beiden sind orthogonal.
Unit Testing bedeutet, einzelne Verhaltenseinheiten zu testen. Eine einzelne Verhaltenseinheit ist die kleinstmögliche Verhaltenseinheit, die einzeln für sich getestet werden kann. (Ich weiß, dass diese beiden Definitionen zirkulär sind, aber sie scheinen in der Praxis recht gut zu funktionieren.)
Sie können Komponententests schreiben, bevor Sie Ihren Code schreiben, nachdem Sie Ihren Code geschrieben haben oder während Sie Ihren Code schreiben.
TDD bedeutet (wie gesagt), dass Sie Ihre Tests Ihre Entwicklung (und Ihr Design) vorantreiben lassen. Das können Sie mit Unit-Tests, Funktionstests und Abnahmetests machen. Normalerweise verwenden Sie alle drei.
Der wichtigste Teil von TDD ist die mittleren D . Sie lassen sich von den Tests fahren . In den Tests erfahren Sie, was zu tun ist, was als Nächstes zu tun ist, wenn Sie fertig sind. Sie sagen Ihnen, was die API sein wird, was das Design ist. (Dies ist wichtig: Bei TDD geht es nicht darum, zuerst Tests zu schreiben. Es gibt viele Projekte, die zuerst Tests schreiben, aber nicht TDD üben. Das Schreiben von Tests als Erstes ist lediglich eine Voraussetzung dafür, dass die Tests die Entwicklung vorantreiben können.)