Unit-testing, controller, welches ein $Staat.go-Methode im controller
Wie kann ich das schreiben von unit-tests für eine Funktion, die ein $Staat.gehen Sie () und die erwartete Umleitung zu, dass insbesondere sate?
$scope.inviteMembers = (id)=> {
$state.go('invite', {deptId: id});
}
- Sie haben bereits unit-tests für den rest des Controllers?
- schreiben nur um zu überprüfen, die Mitgliedstaaten
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da es ein unit-test, Sie müssen nur sicherstellen, dass die Funktion aufgerufen wird, nichts mehr.
Etwas entlang dieser Linien:
Also der main Idee ist hier zu Spion auf die
go
Methode der$state
und wenn wir die Methode aufrufen, müssen wir nur überprüfen, dass die$state.go
- Methode aufgerufen wurden und mit welchen Parametern.Bevor Sie Fragen mich zurück... ja, aber ich möchte sicher sein, dass der Staat sich ebenso ändern. Nun, Sie brauchen nicht zu tun.
Dies ist ein unit-test, das bedeutet, dass Ihre einzige Sorge ist, um dies zu testen-controller und sonst nichts, und seine Verantwortung enden, die nur der Aufruf der Methode. Was danach passiert liegt in der Verantwortung von jemand anderem, in diesem Fall der ui-router, und ich Wette, dass ui-router ist gut getestet 🙂