Cucumber is usually considered a customer acceptance test automation tool. However in many situations, it can be used as a unit testing framework as an alternative to JUnit. Cucumber tests separate the test structure in feature files from the implementation in step definition files. This separation can increase maintainability.
You can create customer readable tests for business rules and domain terms, rather than using less customer-readable code. Having alternative tools allows you to use the one that best defines the test specification.