Specflow는 자동화 도구이지만 Selenium이나 Microsoft UI Automation보다 높은 수준에서 작동합니다. 일반적으로 사용자가 응용 프로그램을 사용하는 시나리오를 설명 할 때이를 사용합니다. 예 :
Given Andy Admin is an administrator
When he logs in
Then he should be taken to the admin home page.
Given Andy Admin is on the admin home page
When he wants help
Then he should be directed to the admin manual.
여기에 아무 곳에서나 관리자 도움말 버튼을 언급하지 않았습니다. Andy는 비서에게 도움을 청할 수있었습니다. 시스템이 제공하는 기능면에서 을 선언적으로 단계로 설명합니다. 이것은 BDD의 스타일입니다.
Specflow는 Given, When 및 Then 구를 코드 단계에 매핑합니다. 코드에서 자동화 툴을 사용하여 실제로 버튼을 클릭 할 수 있습니다. 그러나 비즈니스가 시스템의 기능을 설명하는 데 사용하는 것과 동일한 언어를 사용하는 것이 훨씬 더 유지 보수가 가능합니다. UI가 변경되면 15 단계가 아닌 1 단계 만 변경하면됩니다.
또한 시나리오에서 상위 수준 언어를 사용하면 비즈니스를 계속 유지하는 경향이 있습니다. 즉, 해당 시나리오에 대해 대화와 함께 대화를 갖는 것이 훨씬 쉽습니다. 대화는 BDD의 핵심이며 자동화 부분을 수행하는 방법에 대해 걱정하기 전에 시작하는 것이 좋습니다.