Sto cercando di implementare le funzioni per la stampa di un diamante in termini di sviluppo basato su test di apprendimento in javascript.Jasmine genera un errore su expect(). ToThrow invece di identificare l'errore generato
Diamond.prototype.outerSpace = function (current, widest) {
var currentValue = this.getIndexOf(current);
var widestValue = this.getIndexOf(widest);
if (currentValue > widestValue) {
throw new Error('Invalid combination of arguments');
}
var spaces = widestValue - currentValue;
return new Array(spaces + 1).join(' ');
};
Ho problemi nella gestione degli errori. La funzione precedente dovrebbe generare un errore, se currentValue è maggiore di widestValue.
Questo è il mio frammento che rappresenta il test/spec:
it ("should throw an exception, if it is called with D and C", function() {
var outerSpace = diamond.outerSpace.bind(diamond, 'D', 'C');
expect(outerSpace).toThrow('Invalid combination of arguments');
});
ho provato anche con una funzione anonima in aspettarsi (..), ma anche questo non ha funzionato.
Il messaggio della console è: Funzione prevista per lanciare "Inval ..." ma genera Errore: combinazione di argomenti non valida.
Non capisco, cosa dovrei fare con questa informazione.
Modifica: È strano, perché funziona con Jasmine v.1.3, ma non ha funzionato con jasmine v.2.3 cioè con karma, sebbene il codice sia basato su jasmine.