2017-08-17 2 views
0

Wie soll ich ein Mock-Objekt eines Dienstes eingeben?Wie soll ich ein Mock-Objekt eingeben?

Angenommen, ich habe MyService, die someMethod hat. ich eine mock von MyService wie folgt aus:

let mockMyService = jasmine.createSpyObject('mockMyService', ['someMethod']) 

Wie soll ich mockMyService geben?

Wenn ich es als MyService eingeben, wird das Typoskript Compilers nicht zulassen trifft mockMyService.someMethod.and

Antwort

-1

Vor allem nach den documentation, es wird nicht aufgerufen createSpyObj statt createSpyObject?

Allerdings heißt es, dass es ein Objekt als Spys, wie ihre Mitglieder zurückgibt:

(statisch) createSpyObj (baseNameopt, methodNames) → {Objekt}

Erstellen Sie ein Objekt mit mehreren Spys als seine Mitglieder.

es ist also nicht direkt ein jasmine.Spy Objekt, sondern ein Objekt vom Typ { [key: string]: jasmine.Spy }.

let mockMyService: { [key: string]: jasmine.Spy } = jasmine.createSpyObj('mockMyService', ['someMethod']); 

Wenn Sie jedoch nur auf eine Methode ausspionieren konnte man einfach nur tun:

let mockMyService: jasmine.Spy = createSpy('mockMyService', 'someMethod'); 

Hoffnung i helfen könnte.

-1

Sie können die Mock in der üblichen Art und Weise geben:

let mockMyService: MyService = jasmine.createSpyObj('mockMyService', ['someMethod']); 

Das Problem, das Sie sehen, sind, wenn Sie versuchen, ihre Methoden als Spion zu verwenden ist, dass Sie Typoskript nicht erklärt haben, sie sind Spione, versuchen Sie:

(mockMyService.someMethod as Spy).and.returnValue(...); 
         //^note 
Verwandte Themen