Summary
In this chapter, we examined one of the main obstacles with end-to-end BDD adoption: the fragility of verification code. We discussed how a multi-layer architecture, realized with two handy design patterns (Page Object and Façade), and can reduce step definition brittleness and decrease the maintenance cost of our verification code. But another great benefit is that knowing how to write good, solid step definitions will make you better at writing features. Understanding why we need to abstract the Domain, Operational, and Technical layers and how they interact with each other will give you a much deeper insight into BDD, will make it easier to distinguish and capture Domain behaviors, and will ultimately make you a better system builder.
This chapter brings to an end the instructive part of this book. In the next chapter, we'll take a look at everything we've learned so far, bringing it all together under the umbrella of the canonical requirements life cycle...