Wofür verwenden wir End-to-End-Tests?

Beim End-to-End-Testen (E2E) werden die Szenarios aus Sicht der Endnutzerperspektive durchgespielt. E2E-Tests werden am Ende des Testzyklus durchgeführt, nach Unit-, Integrations- und Systemtests.

Vor- und Nachteile der End-to-End-Tests

End-to-End-Test haben den Vorteil, dass sie händisches Frontend-Testen ersetzen können und somit systematischer alle Fälle der Nutzung abdecken können.

Nachteilig ist, dass Änderungen des Markups immer in den Tests nachgehalten werden müssen. Eine Web-App-weite Abdeckung durch E2E Tests bei vielen verschiedenen Views ist nicht realistisch. Benutzt man jedoch Frontend-Komponenten, kann man diese auf einer Test-View rendern lassen und dafür Tests schreiben, die damit dann diese Komponenten quasi seitenweit testen.

Beispielcode

Der Test

describe('Test der Lizenz-Übersichseite', function () {
	it('http://localhost:8080/laser/subscription/show/12428', function () {
		cy.visit('http://localhost:8080/laser/login/auth')

		cy.get('#username').click()
		.type('testuser')
		cy.get('#password').click()
		.type('test1234')
		cy.contains('Anmelden').click()

		cy.visit('http://localhost:8080/laser/subscription/show/12428')
	})
})

Aufruf im Terminal um Cypress zu öffen

node_modules/.bin/cypress open

Aufruf im Terminal um ein Video vom eigenen Test zu erzeugen

node_modules/.bin/cypress run cypress/integration/myExamples/sample_spec.js