2012-04-03 13 views

Antwort

4

Es gibt verschiedene Arten von Tests: Komponententests, Abnahmetests, Integrationstests. Und es gibt verschiedene Entwicklungspraktiken, wie TDD oder BDD. Bei BDD geht es also nicht nur um Akzeptanztests. BDD kann Unit Tests durchgeführt werden. Ist hier etwas von Dan North thoughts über Unterschied zwischen BDD und TDD, wenn wir über Unit-Tests sprechen:

  • Prüfnorm Namen sollten Sätze sein (werfen den ‚Test‘ Wort weg)
  • Konzentriert auf das Verhalten Satzvorlage (Start Testname mit 'sollte' oder 'shouldnot')
  • etc

Es gibt verschiedene BDD Rahmen für verschiedene Arten von Tests. Z.B. SpecFlow für die Annahme BDD oder NSpec für BDD der Einheit.

Also, Ihre Fragen zu beantworten:

  • Wenn Unit-Tests in BDD Stil getan, dann diese Tests zu schreiben ist BDD Praxis
  • Auch Komponententests Teil BDD sein könnten, wenn wir nicht reden über Akzeptanztests. Denken Sie daran, dass Unit-Testing getrennt von TDD/BDD durchgeführt werden könnte, z. wenn Sie Tests für vorhandenen Code schreiben.
+2

Ich denke, dass die Mehrheit der Komponententests, die ich gesehen habe, mehr auf die Implementierungsdetails als auf ihr funktionelles Verhalten konzentriert sind. Diese Art von Tests neigen dazu, spröde und unnötig spezifisch zu sein. Wenn Tests sich mehr auf das richten, was passieren muss, als auf die Dinge, die erreicht werden, finden Ihre Komponententests eine gemeinsame Basis, die BDD ähnelt. – bryanbcook

+0

Zustimmen. In den letzten Jahren tendiere ich dazu, Tests im Stil einer lesbaren Live-Dokumentation zu schreiben, die nicht von der Implementierung abhängt. Aber zu Beginn habe ich auch Namen wie 'TestMethodFoo' benutzt, die nach dem einfachen Umbenennen von MethodFoo zu Chaos wurden :) –

Verwandte Themen