문제

행동 중심 개발을 실천하기 위해 Python에 사용할 수있는 가장 진보 된 프레임 워크와 도구는 무엇입니까? 특히 RPEC 및 Mocha for Ruby와 유사한 도구를 찾는 것이 좋을 것입니다.

도움이 되었습니까?

해결책

Ian Bicking 사용 권장합니다 DocTest 행동 중심 디자인 :

나는 개인적으로 사용하는 경향이 있습니다 그리고 voidspace 모의 행동 중심의 디자인 스타일에서. 구체적으로, 사양 플러그인 코는 BDD에 탁월합니다.

다른 팁

양상추는 파이썬을위한 오이와 같은 도구라는 것을 의미합니다. http://lettuce.it/

github.com/gabrielfalcao/lettuce에서 소스를 잡을 수 있습니다

정말 추천합니다 행동하다.

파이썬을위한 오이 클론을 찾고, 나는 양상추를 사용하기 시작했지만 꽤 서투르게 디자인 된 복제본을 발견했습니다. 매우 고르지 않은.

그런 다음 나는 행동을 발견하고 정말로 행복했습니다.

BDD 및 TDD 실습에서 프로그래머를 돕기 위해 개발 된 도구 세트를 사용하는 것이 좋습니다. 이 도구 세트는 다음과 같이 구성됩니다. Pycukes, Specloud, 루디 브리오 그리고 dsl.

dsl RSPEC와 같은 기대를 줄 것입니다. RSPEC 기대 사항 API로 할 수있는 모든 일도해야합니다. 당신은 그것을 잡을 수 있습니다 Github의 최신 버전.

Specloud BDD와 같은 유닛 테스트를 실행하는 데 도움이됩니다. 당신은 그것을 통해 그것을 설치할 수 있습니다

pip install specloud

루디 브리오 테스트 복식 (모의, 스터브 및 인형)을위한 라이브러리입니다. 그것을 통해 설치하십시오

pip install ludibrio

그리고 Pycukes BDD의 주요 도구입니다. 시나리오 등을 실행합니다. 다시, 다시,

pip install pycukes

자세한 내용은 도구 문서를 읽으십시오 pypi.

훌륭한 게시물과 답변. 포함하도록 업데이트하고 싶었습니다 신선한 이 목록에서 내가 읽은 Pycukes는 중단됩니다. 신선한 BDD와 Django를 사용하는 것에 대한 좋은 게시물은 여기.

당신이 사용할 수있는 "확실한" 표현적인 주장 (RSPEC에서와 마찬가지로)

Pyccuracy 프로젝트는 Python에서 BDD에 도메인 별 언어를 제공하기위한 노력입니다.

API 수준에서 작동하는 DocTest와 달리 웹 페이지로드 및 양식을 제출하는 것과 같은 높은 수준의 작업을 인코딩합니다. 나는 그것을 사용하지 않았지만 그것이 당신이 찾고있는 것이라면 다소 유망한 것처럼 보입니다.

좋아요 pyccuracy 많이. 요즘 중간 크기의 프로젝트에서 구현하고 있습니다.

시험해보십시오 pyspecs. 개발 중에 테스트를 쉽게 읽고 지속적으로 실행하는 것은이 프로젝트를 만드는 데있어 나의 주요 목표 중 두 가지였습니다.

테스트 코드 :

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 몇 가지 모범 사례를 강조하기 위해 다시 포장되었습니다.

내 해석이 올바른 경우, 당신은 주위에 메소드를 바꾸면 BDD 프레임 워크를 얻을 수 있습니다. xunit 구현. 그러니 그냥 가서 표준 라이브러리를 사용하십시오. 유닛 테스트.

편집 : 빠른 Google이 나타났습니다 행동 모듈 치즈 가게. 더 나아가 수색 BDD의 경우 다른 것을 찾지 못했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top