Sinon stößt AngularJS-Dienst in Tests aus

8

Anstatt einen Mock-Service manuell zu erstellen, wie:

%Vor%

Und dann fügen Sie es meiner $ Controller-Injektion hinzu wie:

%Vor%

Wie kann ich meinen echten Dienst mit Sinon ausstellen und diesen Dienst einwerfen, wenn "mockService" oben in meinen Controller eingespeist wird? Ich möchte meinen wirklichen Dienst ausschließen, falls meine Service-Methoden umbenannt werden, dann werden meine Controller-Tests zusammen mit meinen Service-Tests fehlschlagen.

Vielen Dank im Voraus und ich hoffe, das macht Sinn.

    
Steven Rogers 16.07.2014, 20:18
quelle

1 Antwort

15

Sie stempeln nicht den ganzen Dienst, sondern die Methoden auf dem Dienst aus, auf dem Sie geltend machen möchten. So lassen Sie eckig die Injektion normal machen und dann stöpseln Sie die Methoden aus dem Service aus, den Sie vom $ Injektor bekommen, d. h. Sie müssen nichts Ungewöhnliches tun, da die Services innerhalb eines einzelnen Tests Singletons sind.

Ich erstelle immer eine Sinon-Sandbox und mache mir darüber etwas vor - dann kannst du nach jedem Test alle verspotteten Methoden wiederherstellen

%Vor%     
Jon 16.07.2014, 21:20
quelle

Tags und Links