<p>Just to add a data point: I've used BDD-style extensively for <a href="https://github.com/openstreetmap/Nominatim/blob/master/test/bdd/db/import/addressing.feature">testing Nominatim</a> (after getting the idea from OSRM) and in this context I'm actually quite happy with it. That is because the test all follow a very narrowly defined pattern: fill table A with data -> run import script -> expect data in table B. Nominatim has hundreds of these functional tests and BDD provides a concise notation for them.</p>
<p>Following that success I tried to do other tests in BDD format as well and quickly gave up on it again. Programmers are simply quicker in reading code than reading some English language translation, so BDD gets in the way when writing and reading the tests. I kept forgetting what English language terms I had defined and needed to look them up all the time. And you loose the flexibility of a function that can be called with many different parameters. Everything needs an extra instruction.</p>
<p>Long story short: BDD has a use if you can represent your test suite with only a few instruction patterns where each instruction still represents a fairly complex step and/or where representing your test data in a table is helpful. For everything else: stay away from it.</p>
<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/openstreetmap/openstreetmap-website/issues/2545?email_source=notifications&email_token=AAK2OLPCZ7LXEL3WDPZ77ILRDWE33A5CNFSM4KXZTCRKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMJIQRQ#issuecomment-588417094">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAK2OLIRR5R25PTXWLVCKK3RDWE33ANCNFSM4KXZTCRA">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AAK2OLLAWHXTDCP3EJC7AV3RDWE33A5CNFSM4KXZTCRKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMJIQRQ.gif" height="1" width="1" alt="" /></p>
"name": "View Issue"
"description": "View this Issue on GitHub",