I believe BDD is one of the most effective ways to ease communication between business and development. The Gherkin syntax is simple. You have a "Scenario" that uses the language "Given, When, Then" to describe a single requirement. For example:
Given I have a website
When I try to access the website
Then a login will require me to authenticate
This project focuses on end-to-end testing using https://cypress.io/. I use cypress-cucumber-preprocessor to allow Cypress to use Gherkin syntax.
npm run start
npm run e2e
npm run e2e-headless
https://pbrianmackey.github.io/bdd-angular/
Complex setups may require using a webpack preprocessor in cypress.config.ts and webpack polyfills for node
See also Specflow for .NET