JSpec - RangeError: Максимальный размер стека вызовов превышен

С моими двумя попытками получения сообщения отправил на JSpec Google Group, по-видимому, переставшую работать, я отправляю здесь вместо этого.

Я испытываю затруднения из-за JSpec, по-видимому, входящего в бесконечный рекурсивный цикл с определенным видом теста (ниже). Какие-либо идеи? Это там что-то не так с моим кодом или является это JSpec? Я Выполняю JSpec 2.11.2 через Драгоценный камень Ruby.

Ошибками является 'RangeError: Максимальный размер стека вызовов превысил'. (Safari) и 'InternalError: слишком много рекурсии' (FF/Mac). Я могу добавить Объект к Комнате с помощью консоли Firebug без ошибок.

Для репродуцирования проблемы создайте шаблон jspec проект с помощью 'jspec init тест'. Затем отредактируйте следующие файлы как так:

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

8
задан Rich Apodaca 29 November 2009 в 01:23
поделиться