What is Gherkin and what is Cucumber, and where do they fit into the BDD landscape?
Gherkin is that Given-When-Then notation. It's executable specifications in BDD with Cucumber. It's designed to be both business-friendly and easy to automate. Doing both is a bit of a trick. Below image is sample Gherkin script which is in plain English, business readable and executable:
Cucumber is the automation library that is used to run our executable specifications. Cucumber automates Gherkin specifications in languages like Java, JavaScript, or Ruby, or many others. A cucumber is a tool that turns Gherkin scenarios into automated tests.