Frage

Welches sind die am weitesten fortgeschrittenen Frameworks und Tools für Python für das praktizierende Verhaltensentwicklung? Vor allem ähnliche Werkzeuge wie RSPEC und Mokka für Ruby zu finden, wäre großartig.

War es hilfreich?

Lösung

Ian Streit Empfiehlt die Verwendung Doktor Für ein verhaltensgetriebenes Design:

Ich persönlich neige dazu zu verwenden Nase und Voidspace Mock in einem verhaltensgetriebenen Designstil. Speziell die Spezifikation Plugin für die Nase ist hervorragend für BDD.

Andere Tipps

Salat bedeutet, ein gurkenartiges Werkzeug für Python zu sein: http://lettuce.it/

Sie können die Quelle unter github.com/gabrrielelcao/lettuce greifen

Ich empfehle wirklich sich verhalten.

Auf der Suche nach einem Gurkenklon für Python begann ich, Salat zu verwenden, fand ihn aber eine ziemlich schicklich gestaltete Replik. Sehr unpythonisch.

Dann entdeckte ich das Verhalten und war wirklich zufrieden damit.

Ich empfehle Ihnen, eine Reihe von Tools zu verwenden, die Programmierern in der Praxis von BDD und TDD helfen. Dieser Werkzeugsatz ist komponiert von: Pycukes, Specloud, Ludibrio und Sollte-dsl.

Sollte-dsl Sie geben Ihnen RSPEC-ähnliche Erwartungen. Alles, was Sie mit RSPEC-Erwartungs-API tun können, sollte es auch tun. Sie können das schnappen Neuesteversion von Github.

Specloud Hilft Ihnen beim Laufen von BDD-ähnlichen Unittests. Sie können es installieren, indem Sie dies tun

pip install specloud

Ludibrio ist eine Bibliothek für Test -Doppel (Mocks, Stubs und Dummies). Installieren Sie es über

pip install ludibrio

Und Pycukes ist das Hauptwerkzeug für BDD. Es wird die Szenarien usw. wieder ausführen,

pip install pycukes

Für weitere Informationen lesen Sie bitte die Tools -Dokumentation unter Pypi.

Toller Beitrag und Antworten. Ich wollte nur aktualisieren, um einzuschließen Frisch In dieser Liste wird Pycukes beim Lesen von Pycukes eingestellt. Ein guter Beitrag über die Verwendung von BDD und Django mit Erfrischung ist hier.

Sie können verwenden "sicher" Für ausdrucksstarke Behauptungen (genau wie bei RSPEC)

Das Pyccuracy-Projekt ist ein Anstrengung, eine domänenspezifische Sprache für BDD in Python bereitzustellen.

Im Gegensatz zu Doctest, der auf API-Ebene arbeitet, codiert es über höhere Operationen wie das Laden einer Webseite und das Senden eines Formulars. Ich habe es nicht benutzt, aber es sieht etwas vielversprechend aus, wenn Sie das suchen.

Ich mag Pyccuracy viel. Ich implementiere es heutzutage in einem mittelständischen Projekt.

Ausprobieren pyspecs. Tests leicht zu lesen und während der Entwicklung ständig zu leiten, waren zwei meiner Hauptziele bei der Erstellung dieses Projekts.

Testcode:

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)

Konsolenausgabe:

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

Ich vermisse wahrscheinlich den Punkt, aber was ich von dem behalten habe Originales BDD -Papier War das BDD nur Tdd Verpackt, um einige Best Practices zu betonen.

Wenn meine Interpretation korrekt ist, können Sie ein BDD -Framework erhalten, indem Sie in jedem die Methoden umbenennen Xunit Implementierung. Gehen Sie also einfach weiter und verwenden Sie die Standardbibliothek Gerätetest.

Bearbeiten: Ein kurzes Google wurde a Verhalten Modul in der Käseladen. Des Weiteren Suche Für BDD hat es nichts anderes gefunden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top