Ćwiczenie BDD z Pythonem [zamknięte]

Jakie są najbardziej zaawansowane frameworki i narzędzia dostępne dla Pythona do praktykowania Behavior Driven Development? Szczególnie znalezienie podobnych narzędzi jak rspec i mocha dla ruby byłoby świetne.

Author: the_drow, 2008-10-24

10 answers

Ian Bicking zaleca użyciedoctest do behavior driven design:

Osobiście używam nose i voidspace mock w stylu behavior driven design. W szczególności wtyczka spec dla nose jest doskonała dla BDD.

 35
Author: Ryan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-08 14:36:30

Sałata czyli ogórkowe narzędzie do Pythona: http://lettuce.it/

Możesz pobrać źródło na github.com/gabrielfalcao/lettuce

 47
Author: user333958,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-05 23:20:18

Naprawdę polecam zachowuj się .

Szukając klonu ogórka do Pythona, zacząłem używać sałaty, ale znalazłem ją dość niezdarnie zaprojektowaną repliką. Bardzo Niepytoniczne.

Potem odkryłam, że jestem z tego bardzo zadowolona.

 45
Author: Gregarious,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-18 14:23:39

Zalecam korzystanie z zestawu narzędzi opracowanych, aby pomóc programistom w praktyce BDD i TDD. Ten zestaw narzędzi składa się z: pycukes, specloud, ludibrio i powinny-dsl.

Should-DSL da ci oczekiwania podobne do RSpec. Wszystko, co możesz zrobić z RSpec expectation API, powinno-dsl też. Możesz pobrać latestversion z Github.

SpecLoud pomaga w prowadzeniu testów podobnych do BDD. Ty można go zainstalować wykonując

pip install specloud

Ludibrio jest biblioteką dla dublerów testowych (Mocks, Stubs i Dummies). Install it via

pip install ludibrio

I PyCukes jest głównym narzędziem dla BDD. Będzie uruchamiać scenariusze itp. Again,

pip install pycukes

Aby uzyskać więcej informacji, zapoznaj się z dokumentacją narzędzi na PyPi.

 29
Author: Douglas Camata,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-15 13:02:30

Świetny post i odpowiedzi. Chciałem tylko zaktualizować, aby włączyć odświeżyć na tej liście, jak czytałem pycukes jest wycofany. Dobry post o używaniu BDD i Django z Freshen jest Tutaj .

 11
Author: Steve,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-23 00:28:42

Możesz użyć "sure" dla twierdzeń ekspresyjnych (tak jak w RSpec)

 9
Author: Gabriel Falcão,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-08 07:17:40

Projekt Pyccuracy jest próbą zapewnienia specyficznego dla domeny języka BDD w Pythonie.

W przeciwieństwie do doctest, który działa na poziomie API, koduje operacje wyższego poziomu, takie jak ładowanie strony internetowej i przesyłanie formularza. Nie używałem go, ale wygląda obiecująco, jeśli tego szukasz.

 8
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-01 18:04:03

Lubię Pyccuracy bardzo. Realizuję je w ramach projektu średniej wielkości.

 6
Author: Refael Ackermann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-22 16:55:05

Wypróbuj pyspecs . Uczynienie testów łatwymi do odczytania i ciągłe ich uruchamianie w trakcie tworzenia to dwa z moich głównych celów w tworzeniu tego projektu.

Kod Badania:

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)

Wyjście Konsoli:

# 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)
 6
Author: mdwhatcott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-19 03:48:04

Prawdopodobnie całkowicie nie rozumiem tego, ale to, co zachowałem z oryginalnego papieru BDD, to to, że BDD było po prostu TDD przepakowane, aby podkreślić kilka najlepszych praktyk.

Jeśli moja interpretacja jest poprawna, możesz uzyskać framework BDD po prostu zmieniając nazwy metod w dowolnej xUnit implementacji. Więc po prostu użyj standardowej biblioteki unittest.

EDIT: a quick google turned up a Behaviour module in the Cheese Sklep . Dalsze wyszukiwanie dla BDD nie znaleziono nic innego.

 4
Author: ddaa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-23 21:19:06