¿Cuáles son los marcos y herramientas más avanzados que hay disponibles para python para practicar Behavior Driven Development? Especialmente encontrar herramientas similares como rspec y mocha para ruby sería genial.
¿Cuáles son los marcos y herramientas más avanzados que hay disponibles para python para practicar Behavior Driven Development? Especialmente encontrar herramientas similares como rspec y mocha para ruby sería genial.
Respuestas:
Ian Bicking recomienda usar doctest para el diseño basado en el comportamiento:
Personalmente, tiendo a usar simulacros de nariz y espacio vacío en un estilo de diseño basado en el comportamiento. Específicamente, el complemento de especificaciones para nose es excelente para BDD.
Lechuga 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 .
Buscando un clon de pepino para Python, comencé a usar lechuga, pero encontré una réplica bastante torpemente diseñada. Muy poco pitón.
Luego descubrí comportarse, y he estado muy feliz 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 .
Debe-DSL le dará expectativas similares a las de RSpec. Todo lo que puede hacer con la API de expectativas de RSpec, should-dsl también lo hace. Puedes obtener la última versión de Github .
SpecLoud lo ayuda a ejecutar pruebas de unidad similares a BDD. Puedes instalarlo haciendo
pip install specloud
Ludibrio es una biblioteca para dobles de prueba (Mocks, Stubs y Dummies). Instalarlo a través de
pip install ludibrio
Y PyCukes es la herramienta principal para BDD. Ejecutará los escenarios, etc. De nuevo,
pip install pycukes
Para obtener más información, lea la documentación de las herramientas en PyPi .
Puede usar "seguro" para afirmaciones expresivas (al igual que en RSpec)
El proyecto Pyccuracy es un esfuerzo para proporcionar un lenguaje de dominio específico para BDD en Python.
A diferencia de doctest, que funciona a nivel de 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.
Prueba pyspecs . Hacer que las pruebas sean fáciles de leer y ejecutar constantemente durante el desarrollo fueron dos de mis principales objetivos al crear este proyecto.
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)
Probablemente me estoy perdiendo el punto por completo, pero lo que conservé del documento original de BDD fue que BDD era solo 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 de xUnit . Así que siga adelante y use la unidad de prueba estándar de la biblioteca .
EDITAR: un google rápido apareció un módulo de comportamiento en la tienda de queso . La búsqueda adicional de BDD allí no encontró nada más.