파이썬으로 BDD 연습하기
Python에서 Behavior Driven Development를 실행하는 데 사용할 수 있는 가장 고급 프레임워크와 도구는 무엇입니까?특히 rspec이나 mocha 같은 비슷한 도구를 루비용으로 찾으면 좋을 것 같습니다.
상추는 비단뱀을 위한 오이와 같은 도구라는 뜻입니다. http://lettuce.it/
소스는 github.com/gabrielfalcao/lettuce 에서 확인할 수 있습니다.
저는 정말 예의 바르게 행동하는 것을 추천합니다.
파이썬용 오이 복제품을 찾다가 상추를 사용하기 시작했는데, 꽤 어설프게 디자인된 복제품을 발견했습니다.언피토닉.
그리고 나서 저는 행동하는 것을 발견했고, 그것에 대해 정말 행복해 했습니다.
Ian Bicking은 행동 중심 설계를 위해 의사 테스트를 사용할 것을 권장합니다.
저는 개인적으로 행동 중심의 디자인 스타일로 코와 보이드 공간 모의를 사용하는 편입니다.특히 코용 사양 플러그인은 BDD에 탁월합니다.
프로그래머들이 BDD와 TDD를 연습할 때 도움이 되도록 개발된 도구들을 사용하는 것을 추천합니다.이 도구 세트는 pycukes, specloud, ludibrio 및 should-dsl로 구성되어 있습니다.
DSL을 사용하면 RSpec과 같은 기대를 할 수 있습니다.RSpec expectation API로 할 수 있는 모든 것은 should-dsl도 가능합니다.Github에서 최신 버전을 가져올 수 있습니다.
SpecLoud는 BDD와 같은 단위 테스트를 실행할 수 있도록 도와줍니다.함으로써 설치할 수 있습니다.
pip install specloud
루디브리오는 테스트 복식(Mocks, Stubs, Dummies)을 위한 도서관입니다.다음을 통해 설치
pip install ludibrio
그리고 PyCukes는 BDD의 주요 도구입니다.시나리오 등을 실행합니다.다시.
pip install pycukes
자세한 내용은 PyPi에서 툴 설명서를 참조하시기 바랍니다.
좋은 글과 답변.나는 단지 파이쿠크스가 중단되었다고 읽었기 때문에 이 목록에 프레젠을 포함하도록 업데이트하고 싶었습니다.프레젠과 함께 BDD와 장고를 사용하는 것에 대한 좋은 게시물이 여기 있습니다.
표현적 주장에 대해 "sure"를 사용할 수 있습니다(RSpec에서와 마찬가지로).
Pyccuracy 프로젝트는 Python에서 BDD를 위한 도메인별 언어를 제공하기 위한 노력입니다.
API 수준에서 작동하는 docest와 달리 웹페이지 로딩, 양식 제출 등 상위 단계의 작업을 인코딩합니다.사용해 본 적은 없지만, 찾으시는 제품이라면 가능성이 있어 보입니다.
저는 파이큐레이시를 많이 좋아합니다.저는 요즘 중간 규모의 프로젝트에서 그것을 실행하고 있습니다.
pyspec을 사용해 보세요.이 프로젝트를 개발하는 데 있어서 저의 주된 목표는 읽기 쉬운 테스트를 만드는 것과 개발하는 동안 계속 실행하는 것이었습니다.
테스트 코드:
from pyspecs import given, when, then, and_, the, this
with given.two_operands:
a = 2
b = 3
with when.supplied_to_the_add_function:
total = a + b
with then.the_total_should_be_mathmatically_correct:
the(total).should.equal(5)
with and_.the_total_should_be_greater_than_either_operand:
the(total).should.be_greater_than(a)
the(total).should.be_greater_than(b)
with when.supplied_to_the_subtract_function:
difference = b - a
with then.the_difference_should_be_mathmatically_correct:
the(difference).should.equal(1)
콘솔 출력:
# run_pyspecs.py
| • given two operands
| • when supplied to the add function
| • then the total should be mathmatically correct
| • and the total should be greater than either operand
| • when supplied to the subtract function
| • then the difference should be mathmatically correct
(ok) 6 passed (6 steps, 1 scenarios in 0.0002 seconds)
저는 아마 요점을 완전히 놓쳤을 것입니다. 하지만 제가 원래 BDD 논문에 보관하고 있던 것은 BDD가 단지 몇 가지 모범 사례를 강조하기 위해 TDD로 재포장되었다는 것입니다.
만약 내 해석이 맞다면, 당신은 어떤 xUnit 구현이든 메소드 이름만 바꿔도 BDD 프레임워크를 얻을 수 있습니다.그러니 그냥 표준 도서관의 유니트 테스트를 이용하세요.
편집: 빠른 구글에서 치즈 가게의 행동 모듈이 나타났습니다.거기서 BDD를 더 검색해보니 다른 것은 발견되지 않았습니다.
언급URL : https://stackoverflow.com/questions/231371/practicing-bdd-with-python
'sourcecode' 카테고리의 다른 글
JQuery-Mobile/Phonegap을 함께 사용하는 올바른 방법은 무엇입니까? (0) | 2023.10.05 |
---|---|
jquery를 사용하여 div 태그 값 설정 (0) | 2023.10.05 |
Kubernetes 외부 MariaDB PXC 클러스터 노드 로드 밸런싱/페일오버 방법 (0) | 2023.10.05 |
양식 데이터 다중 부분/양식 데이터에서 경계를 가져오거나 설정하는 방법 - 각도 (0) | 2023.10.05 |
iOS Swift에서 이미지에 텍스트를 추가하려면 어떻게 해야 합니까? (0) | 2023.10.05 |