Pregunta

¿Cuáles son los marcos y herramientas más avanzados que están disponibles para Python para practicar el desarrollo impulsado por el comportamiento? Especialmente encontrar herramientas similares como rspec y mocha para ruby ??sería genial.

¿Fue útil?

Solución

Ian Bicking recomienda utilizar doctest para el diseño basado en el comportamiento:

Yo personalmente tiendo a usar nose y simulacro de espacio vacío en un estilo de diseño basado en el comportamiento . Específicamente, la especificación plugin para nose es excelente para BDD.

Otros consejos

Lettuce significa ser una herramienta similar a un pepino para python: http://lettuce.it/

Puede obtener la fuente en github.com/gabrielfalcao/lettuce

Realmente recomiendo comportarse .

En busca de un clon de pepino para Python, comencé a usar lechuga, pero me pareció una réplica bastante torpe. Muy Unpythonic.

Luego descubrí comportarse, y he estado muy contento con eso.

Le recomiendo que use un conjunto de herramientas desarrolladas para ayudar a los programadores en la práctica de BDD y TDD. Este conjunto de herramientas está compuesto por: pycukes , specloud , ludibrio y should-dsl .

caso de DSL le dará expectativas de tipo RSpec. Todo lo que puede hacer con la API de expectativa de RSpec, should-dsl también. Puede obtener la latestversion desde Github .

SpecLoud le ayuda a ejecutar pruebas de unidad tipo BDD. Puedes instalarlo haciendo

pip install specloud

Ludibrio es una biblioteca para pruebas de dobles (simulacros, talones y maniquíes). Instalarlo a través de

pip install ludibrio

Y PyCukes es la herramienta principal para BDD. Se ejecutarán los escenarios, etc. Una vez más,

pip install pycukes

Para obtener más información, lea la documentación de las herramientas en PyPi .

Gran publicación y respuestas. Solo quería actualizar para incluir Freshen en esta lista a medida que leo Pycukes se descontinúa. Una buena publicación sobre el uso de BDD y Django con Freshen es aquí .

Puede usar " sure " para afirmaciones expresivas (como en RSpec)

El proyecto Pyccuracy es un esfuerzo por proporcionar un lenguaje específico de dominio para BDD en Python.

A diferencia de doctest, que funciona a nivel API, codifica operaciones de nivel superior, como cargar una página web y enviar un formulario. No lo he usado pero parece algo prometedor si eso es lo que estás buscando.

Me gusta mucho Pyccuracy . Lo estoy implementando en un proyecto de tamaño mediano en estos días.

Pruebe pyspecs . Hacer que las pruebas sean fáciles de leer y que se ejecuten constantemente durante el desarrollo fueron dos de mis principales objetivos al crear este proyecto.

Código de prueba:

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)

Salida de consola:

# 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)

Probablemente me estoy perdiendo completamente el punto, pero lo que retuve del papel original de BDD fue que BDD fue simplemente TDD reempaquetado para enfatizar algunas de las mejores prácticas.

Si mi interpretación es correcta, puede obtener un marco BDD simplemente cambiando el nombre de los métodos en cualquier Implementación xUnit . Así que siga adelante y use la unittest de la biblioteca estándar .

EDITAR: un google rápido apareció un Comportamiento en el módulo Cheese Shop . Además, buscando BDD allí no encontró nada más.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top