Java 용 각 BDD ( Behavior Driven Development ) 프레임 워크 의 장단점은 무엇입니까 ?
예를 들어 여기 에서 일부를 찾았습니다 .
이미 모의 라이브러리 (예 : Mockito )를 사용하고 있다면 BDD 프레임 워크를 사용하는 것이 합리적 입니까?
Java 용 각 BDD ( Behavior Driven Development ) 프레임 워크 의 장단점은 무엇입니까 ?
예를 들어 여기 에서 일부를 찾았습니다 .
이미 모의 라이브러리 (예 : Mockito )를 사용하고 있다면 BDD 프레임 워크를 사용하는 것이 합리적 입니까?
답변:
방금 Java 용 BDD 프레임 워크 세 가지 비교를 마쳤습니다. 분명히 내 결과는 사용 기한이 상당히 짧습니다.
나는 내가 원했던 것처럼 JDave의 Cuke4Duke를 시험해 볼 기회가 없었지만 아마도 지금은 JBehave를 추진할 것입니다.
"장단점"은 사람마다 다를 수 있습니다. 나는 보통 봐
그리고 일부 프레임 워크에서
모의에 관하여 : 분명히 모의 프레임 워크도 필요합니다. BDD 프레임 워크는 사양 작성에 도움이 될 뿐이지 만 일부 테스트에는 모의 또는 스텁이 필요합니다. 하향식으로 디자인 할 때 (개요에서 세부 사항까지).
Java와 함께 사용하기에 가장 좋은 BDD 프레임 워크는 무엇입니까? 왜? 각 프레임 워크의 장단점은 무엇입니까?
Concordion vs. Cucumber 및 Java 기반 수락 테스트에 대한 흥미로운 링크가 있습니다.
여기에서 몇 개를 찾았지만 어떤 것을 선택해야할지 모르겠습니다.
정말로 위에서 언급 한 것을보세요.
이미 모의 라이브러리 (예 : Mockito)를 사용하고 있다면 BDD 프레임 워크를 사용하는 것이 합리적입니까?
짧은 대답 : 그렇습니다. 실제로 BDD 프레임 워크를 사용하는 수용 테스트와 모의 개체를 사용하는 격리 단위 테스트는 너무 다르기 때문에 실제로 질문을받지 못합니다. 수락 테스트는 블랙 박스 테스트이며, 테스트는 비즈니스 기능이 작동하는지 확인하는 데 사용되며 비즈니스 분석가가 이상적으로 작성합니다. 모의를 사용한 격리 된 단위 테스트는 화이트 박스 테스트이며 테스트는 단위가 작동하고 개발자가 작성했는지 확인하는 데 사용됩니다. 둘 다 유용하지만 완전히 다른 목적을 가지고 있습니다. 즉, Mockito를 사용하는 것은 BDD 프레임 워크를 전혀 대체하지 않으며 그 반대도 사실입니다.
와, 주제가 뜨겁고 좋은 답변이 많네요 ...
아이러니를 제외하고, 나는 최근에 BDD를 발견했고 그 개념이 흥미 롭다는 것을 발견했습니다. 이봐, 테스트와 사양을 모두 작성해야합니다! 놀랍게도 후자는 일부 프로젝트에서 누락 될 수 있습니다. 또는 BDD가 도입해야하는 정밀도가 부족할 수도 있습니다.
개발에 힘 입어 행동 기사는 좋은 기사에 대한 개념과 링크를 요약 한 것입니다 (앤드류 글로버가 쓴 것과 같은). 또한이 스레드의 주제에 대해 BDD 프레임 워크의 포괄적 인 목록을 제공합니다. 그 중 상당수는 Java 용입니다.
프레임 워크를 선택하는 문제는 해결되지 않지만 적어도 검색이 쉬워집니다.
BDD는 테스트 코드의 가독성에 크게 의존하기 때문에 선택의 좋은 기준은 빠른 둘러보기 / 튜토리얼을보고 어떤 것이 자신의 스타일에 더 잘 맞는지 확인하는 것입니다. 다른 기준은 프레임 워크가 익숙한 도구 (단위 테스트, 모의), IDE 사용 등을 활용한다는 사실 일 수 있습니다.
우리 팀은 JBehave를 사용하고 있습니다. 를 사용하고 있습니다. 일반 텍스트 파일을 사용하여 사양을 저장합니다. 그런 다음 모든 단계 (Given, When, Then)는 단계에서 매개 변수를 추출 할 수있는 특정 방법에 의해 실행됩니다. 시나리오는 들여 쓰기 및 형식이 잘 지정 될 수 있으므로 클라이언트가이를 확인하려는 경우 많은 도움이됩니다.
몇 가지 문제도 있습니다. Java 6으로 전환했습니다. 실행 중에 일부 시나리오 단계가 무시되는 경우가 있습니다. 버그가 어디에 있는지 파악하는 데 많은 문제가 발생할 수 있습니다.