Exploring Behavior Driven Development
BDD is a technique that extends the TDD approach while also using some DDD concepts. In particular, the workflow is the same as TDD, that is, write a test, run it (initially, it will fail), and implement the feature until the test succeeds.
What changes is how the test is written. Instead of focusing on single functions (or, even better, relying on the developer to pick the right granularity), BDD defines the extent of each test a bit better. In particular, as highlighted in the name of the methodology, BDD tests are focused on the expected behavior, that is, the functionality implemented by each use case.
In this sense, it is an explicit suggestion to keep high-level functionalities, rather than method-by-method unit tests. BDD is also linked to DDD concepts. In particular, it is recommended that you use ubiquitous language as a way to specify each behavior. In this way, you have an explicit mapping between a business use case, expressed...