С двумя попытками получить сообщение, отправленное в JSpec Google Group, по-видимому, не удалось, вместо этого я размещаю здесь.JSpec - RangeError: превышен максимальный размер стека вызовов
У меня возникли проблемы с JSpec, очевидно, входя в бесконечный рекурсивный цикл с определенным типом теста (см. Ниже). Есть идеи? Это что-то не так с моим кодом или это JSpec? Я запускаю JSpec 2.11.2 через Ruby Gem.
Ошибки: «RangeError: Максимальный размер стека вызовов». (Safari) и «InternalError: слишком много рекурсии» (FF/Mac). Я могу добавить элемент в комнату с помощью консоли Firebug без ошибок.
Чтобы воспроизвести проблему, создайте проект jspec шаблона, используя 'jspec init test'. Затем измените следующие файлы следующим образом:
yourlib.core.js
var Game = {};
Game.item = function() {
var result = {
name : 'Undefined',
room : null
}
return result;
};
Game.room = function() {
var result = {
items : [],
addItem : function (name) {
var item = Game.item();
item.name = name;
item.room = this;
this.items.push(item);
return item;
}
};
return result;
};
spec.core.js
describe 'Room'
before_each
room = Game.room()
end
describe 'addItem()'
before_each
potion = room.addItem('Potion')
key = room.addItem('Key')
end
//this is fine
it 'should return two different items'
key.should_not.be potion
end
//InternalError: too much recursion
it 'should not give recursion error'
key.should.be potion
end
end
end
Никогда не слышал о JSpec раньше. извините :(Почти весь ваш код кажется достаточно простым, чтобы не сделать ничего сумасшедшего, кроме, быть может, «item.room = this;» – Tei