Summary
Cucumber tests (and BDD tests in general) are similar to the unit tests we’ve been writing in the rest of the book. They are focused on specifying examples of behavior. They should make use of real data and numbers as means to test a general concept, like we’ve done in the two examples in this chapter.
BDD tests differ from unit tests in that they are system tests (having a much broader test surface area) and they are written in natural language.
Just as with unit tests, it’s important to find ways to simplify the code when writing BDD tests. The number one rule is to try to write generic Given, When, and Then phrases that can be reused across classes and extracted out of step definition files, either into the World
class or some other module. We’ve seen an example of how to do that in this chapter.
In the next chapter, we’ll use a BDD test to drive the implementation of a new feature in Spec Logo.