Code coverage is an useful metric tests definition. But it's not the single one metric which can be used. One alternative are mutation tests.
Mocks ? Spies ? These words seem to be clear for the most test-aware developers. They're related to common concept called test doubles.
Pure tests in programming are not a single way to check if the code is correct. Theories are another method, introduced already some time ago.
The possibility to configure Cucumber test cases with @CucuomberOptions annotation is not a single one advanced feature. In Cucumber we can also go further and, for example, read Date objects directly from cases descriptions or group similar tests together thanks to tags.
Cucumber is very popular framework to define BDD tests. Clear division helps to write them quickly and maintain easily. In additionally, it contains some of useful configurable options, such as output formatting or file sources definition.
When we are young, the pleasure of delivery features are so big that we ignore testing phase. The pleasure of writing tests comes with age when we can see that they help to maintain clean code. One of the most popular acronyms promoting tests is TDD (Test-Driven Development). However, it's not the single one because it has a complementary brother called BDD.
Well decomposed application's code is testable very easily through unit tests. However, unit tests don't guarantee that these code snippets mixed together will work correctly. For this kind of check we should use integration tests. Tests which nobody likes...