Ich muss ein FileReader Onload testen, mit Jasmine + Sinon. Stubbing eine Methode, die eine echte Methode mit Jasmin ruft
MyObject.prototype.uploadFile = function (file, callback) {
const fileReader = new FileReader();
fileReader.onload = event => {
if (typeof callback === 'function') {
callback(event);
}
};
fileReader.readAsDataURL(file);
};
Und dies ist der Test:
Dies ist die Funktion getestet werden soll
describe('uploadFile',() => {
it('should execute the callback',() => {
let testFunction = jasmine.createSpy();
let readData = {
readAsDataURL:() => {
this.onload();
},
onload:() => {
}
};
file = new Blob(['image']);
sandbox.stub(window, 'FileReader').returns(readData);
component = sandbox.render(BioProfile);
component.replaceImage(file, testFunction);
expect(testFunction).toHaveBeenCalled();
});
});
Wie Sie sehen können, stubbed ich readdata aus FileReader (nicht sicher, ob es richtig gemacht wird), aber ich brauche einen Stub Methode, um die tatsächliche Methode eines FileReaders (onload) aufzurufen, um testen zu können.
Ist das möglich?