So habe ich solches Szenario und Funktion gegeben:Testing loging mit Behat
Feature: User registration
As an Unregistered User I want to be able to register to the system so that I can use it.
Scenario: User successfully registers
Given I am unregistered user
When I register successfully into the system
Then I should become a registered user
And I should be logged on to the system
ich dachte, wie den Test zu schreiben. Was behaupte ich? Lass uns darüber reden, dass ich im System angemeldet sein sollte. Ich hatte vor einiger Zeit Tests mit Phpunit und Spötter gemacht.
Es wird nicht genau gesagt, wie validiere ich, dass der Benutzer angemeldet ist. Kann ich validieren? Möchten Sie testen, ob der Benutzer ein div mit der Nachricht "Sie sind eingeloggt" sehen? Und dann nach dem Schreiben des Tests - implementieren Sie das Feature? Ein weiterer Fall könnte sein, dass der Benutzer auf eine andere Funktionsseite umgeleitet wird. Ich weiß nicht welche. Wenn ich würde, könnte ich Testüberprüfung schreiben, wird Benutzer zu dieser Seite umgeleitet.
Auch der Teil "Gegeben ich bin nicht registrierte Benutzer" - wie sieht es in Tests aus? Ich nehme an, es wird eine Sitzung geben und wenn Tests vor diesem Test mit eingeloggtem Benutzer ausgeführt wurden, dann wird es bei diesem Test auch eingeloggt sein. Ein Gedanke kam - Logout-Link aufzurufen und Check ist jedes Mal die Antwort 200. Dadurch wird sichergestellt, dass der Benutzer nicht registriert ist.
Oder ich denke, ich sollte mit Geschäftsinhaber diskutieren und fragen, was nach dem Login passieren soll.
Vielleicht sollte das Szenario sogar geändert werden, so dass es sichtbar wäre, wie es aussehen wird, wenn der Benutzer angemeldet ist? Es könnte sein, dass Leute, die diese Szenarien schreiben, nicht darüber nachgedacht haben und ich verstehe, dass es schwierig ist, über solche Details nachzudenken. Erst wenn Sie mit der Implementierung des Codes beginnen, werden die Fragen zu Details gestellt.
Wenn wir Beispiele von dieser Seite zu vergleichen:
http://www.netgenlabs.com/Blog/How-to-test-with-Behat
dann habe ich deutlich von den Szenarien sehen, was Nutzer hat und was muss in den Tests überprüft werden. Z.B.
Scenario: Open customer registration page
Given I am on homepage
When I follow "Customer registration"
Then I should be at "/customer-registration"
And I should see "Welcome to customer registration page!"
Hängt davon ab, wollen Sie die UI-Schnittstelle für die Anmeldung/Registrierung testen oder nur die Logik ohne UI testen? – gvf
Ich denke UI. Ich meine nicht Javascript. Aber nur Benutzer, der seine Daten eingibt und eingeloggt ist. Ich habe mit einem Typen gesprochen, der diese Spezifikationen geschrieben hat, und er sagt, es sei schlecht, genaue Texte von Schaltflächen und Feldern anzugeben, weil die Spezifikation geändert werden muss, wenn wir das Feld wechseln. –