Gibt es sowas wie RSpec für Python?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

sma hat geschrieben:Ich glaube allerdings nicht, dass ich einem Kunden einen Ausdruck mit doctests vorlegen kann, sie mischen doch zu stark den Programmcode und die Erklärungen (poker meinte das selbe).
Meinst Du hier vielleicht bei Doctests werden Erklärungen und Code zu stark *getrennt*!? Ob man das einem Kunden vorlegen kann, hängt IMHO stark davon ab wie man den Text verfasst. Und da hat man ja alle Freiheiten die einem ein textbasiertes "Freiform"-Format lässt. Mit reStructured oder LaTeX kann man damit sicher ansprechende Drucksachen erzeugen.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Nein, ich meinte, es vermischt zu stark die konkrete Implementierung mit der abstrakten Beschreibung. Es hängt damit zusammen, wie man etwas sagt, auch wenn's letztlich das selbe meint. Eben der Unterschied, warum Perl mist ist und Python gut, auch wenn beide Sprachen die gleiche Ausdrucksstärke haben, weil sie beide Turning-komplett sind.

Ich glaube, man könnte mit einem entsprechenden Reporting-Tool aus einem auf ganz bestimmte Weise formatierten Doctest auch die für den Kunden relevanten Informationen ziehen, aber dann ist es nicht mehr anders - auch eine neue spezielle externe DSL - als etwas wie mein PySpec-Vorschlag.

Letztlich läuft es wohl darauf hinaus: Für wen es keinen Unterschied zwischen

Code: Alles auswählen

assert len(stack) == 0
und

Code: Alles auswählen

expect_that(stack).should_be_empty()
gibt, dem wird BDD nicht gefallen.

Stefan
BlackJack

Man kann doch schreiben was man will und wie man es will, ausser dem testbarem Teil, der eben die entsprechende Form haben muss. Wozu brauche ich da ein spezielles Tool um Informationen heraus zu ziehen? Wo denn heraus ziehen?

Und ich sehe auch keine stärkere Vermischung der konkreten Implementierung als bei RSpec. Man muss halt die Klassen und Attribute schon kennen, die man spezifiziert, aber das ist bei RSPec genau so.
poker
User
Beiträge: 146
Registriert: Donnerstag 20. September 2007, 21:44

BlackJack hat geschrieben:Man kann doch schreiben was man will und wie man es will, ausser dem testbarem Teil, der eben die entsprechende Form haben muss.
Ja, klar kann man schreiben was man will. Aber ich glaube du hast nicht wirklich erfast was RSpec ist und wo genau der Unterschied zwischen dem und doctest liegt.

Es geht sma, glaube ich, garnicht darum doctest in irgendeiner weise abzuwerten, BlackJack. Im gegenteil. Ich denke er will dir/euch nur den unterschied nahebringen?

Wenn man aber für Argumente nicht offen ist und erstmal dagegen ist, weil es vom "anderen" Lager kommt, dann artet das zu solchen Diskussionen aus :roll: -- Vom gegenteil deiner voreingenommenheit, BlackJack, konntest du mich bisher nicht überzeugen.
BlackJack hat geschrieben: Wozu brauche ich da ein spezielles Tool um Informationen heraus zu ziehen?
Ich sag ja, du hast das Konszepz von RSPec nciht begriffen. Hast du dir *zumindest* die infos die es auf der Seite und im netzt gibt dazu durchgelesen?
BlackJack hat geschrieben:Wo denn heraus ziehen?
Das habe ich versucht hier zu erklären. Ich hab auch extra gefragt:
poker hat geschrieben:Kannst du mir soweit folgen? Sonst schiebe ich ein richtiges Beispiel nach.
. Deine einzige Reaktion war das, was mich annehmen lässt das es dich nicht sonderlich interessiert, und der weitere verlauf deiner Argumentationen in diesem thread nur rein rethorischer Natur sind!?

BTW: Bevor als konter kommt: Ja, ich hab mich sowohl mit doctest **ausgiebig** beschäftigt, sowie ``nose``, ``py.test``, dem ``unittest`` aus der STD (wobei ich das von Java schon kenne), und allen diesbezüglich anderen Implementationen. Ähnlich sieht es mit dem bereich mocking aus. Kurz: Ich kenne deren Konzepte, stärken und schwächen und kann klar beurteilen wo der unterschied zu RSpec ist, da ich es genauso gut kenne. Und wie schon gesagt, das mit doctest zu vergleich ist wie Birnen mit Äpfel zu vergleichen...

Nichts für ungut...
poker
User
Beiträge: 146
Registriert: Donnerstag 20. September 2007, 21:44

sma hat geschrieben:Note to self: Specipy
Hi, das klingt gut und kenne ich tatsächlich noch garnicht, was im Anbetracht des alters (4 Monate?) ja nicht verwundert ;) Lange rede kurzer Sinn: Das schaue ich mir am nächsten WE an :)

Von mir jedenfalls thx.

gruß
poker, der auch hier des öfteren mit sich selbst redet ;)
BlackJack

@poker: 'Ne Menge Unterstellungen deinerseits, aber ich konnte Dich noch nicht ─ unaufgefordert ─ von meiner Unvoreingenommenheit überzeugen. Das ist niedlich.

Du könntest statt der Gegenfragen, vielleicht meine einfach beantworten. Dann würde das auch weniger nach einer rethorischen Diskussion aussehen.

Wenn ich die Spezifikation als Textdatei schreibe, was soll ich da noch extrahieren? Ich schreibe ja nur das was da wirklich stehen soll, nicht mehr, nicht weniger. Von was für "Bereichen" und "zuordnen" ist da die Rede?

Vielleicht hab ich RSpec wirklich nicht verstanden, aber es erklärt mir Dummerchen ja auch keiner. Für mich sieht's nach einer DSL für Spezifikation aus, die gleichzeitig einen Teil der Unit-Tests für ein Programm/System repräsentiert. Da die so in Python nicht machbar ist, dachte ich das man mit einer Textdatei in der man schreiben kann *was man will* + ein wenig ausführbaren Doctests, einen ganz guten Ersatz hat. Das hat nichts mit Lagerdenken zu tun, sondern dass sich Python ganz einfach nicht für solche DSLs eignet.

Ausserdem hätte ich die DSL mal gerne Beispiele gesehen, die nicht so trivial sind. Ob man dann immer noch mit den paar "Syntaxelementen" auskommt und sich das immer noch so "natürlich" liest. Oder ob man dann nicht doch gezwungen ist echten Text dazu zu schreiben.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

TUFKAB – the user formerly known as blackbird
Antworten