2015-12-24 16 views
5

genannt Hier ist meine Winkel Fabrik in Typoskript geschrieben:Jasmine Erwartete Spy worden sein

export class DataService { 

constructor() { 
    this.setYear(2015); 
} 
setYear = (year:number) => { 
     this._selectedYear =year; 
    } 
} 

Hier meine Testdatei ist.

import {DataService } from ' ./sharedData.Service'; 
export function main() { 
    describe("DataService",() => { 
     let service: DataService; 
     beforeEach(function() { 
      service = new DataService(); 
     }); 

     it("should initialize shared data service",() => { 
      spyOn(service, "setYear"); 
      expect(service).toBeDefined(); 
      expect(service.setYear).toHaveBeenCalled(2015); 
     }); 
    }); 
} 

Wenn ich ausführen, um die Datei, um den Test nicht sagen, dass

**Expected spy setSelectedCropYear to have been called. 
Error: Expected spy setSelectedCropYear to have been called.** 

ich nicht in der Lage bin zu Figur, was falsch ist. Kann mir bitte jemand sagen, was mit dem Test nicht stimmt.

Antwort

0

Das Problem hier behoben ist der aktualisierte Test.

import {DataService } from ' ./sharedData.Service'; 
export function main() { 
    describe("DataService",() => { 
     let service: DataService; 
     beforeEach(function() { 
      service = new DataService(); 
     }); 

     it("should initialize shared data service",() => { 
      var spy = spyOn(service, "setYear").and.callThrough(); 
      expect(service).toBeDefined(); 
      expect(spy); 
      expect(service._selectedYear).toEqual(2015); 
     }); 
    }); 
} 
1

Das Problem ist, dass Sie den Spion zu spät einrichten. Zu dem Zeitpunkt, an dem du den Spion-Dienst montierst, wurde er bereits erstellt und setJear wurde aufgerufen. Aber Sie können den Spion-Dienst offensichtlich nicht vor dem Aufbau starten. Eine Möglichkeit ist das Ausspähen von DataService.prototype.setYear. Sie können sicherstellen, dass sie von der Serviceinstanz aufgerufen wurde, um zu bestätigen, dass Dataservice.prototype.setYear.calls.mostRecent(). Object is service ist.

Verwandte Themen