由于我两次尝试将消息发布到JSpec Google Group显然都失败了,我将在此发布.
我遇到了JSpec的问题,显然是通过某种测试进入无限递归循环(下图).有任何想法吗?我的代码有问题还是JSpec?我正在通过Ruby Gem运行JSpec 2.11.2.
错误是'RangeError:超出最大调用堆栈大小.' (Safari)和'InternalError:太多的递归'(FF/Mac).我可以使用Firebug控制台将一个项目添加到房间,没有错误.
要重现该问题,请使用"jspec init test"创建模板jspec项目.然后编辑以下文件,如下所示:
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;
};
Run Code Online (Sandbox Code Playgroud)
spec.core.js
describe 'Room'
before_each
room = …Run Code Online (Sandbox Code Playgroud) 我是CouchDB制作东西的新手.所以,我有很多关于它的问题,但让我们关注其中一个.
CouchDB中有这个概念javascript代码 (验证+地图+降低秀+?)被写在设计文件.这是数据库的一部分,就像存储过程或触发器用于更多传统数据库一样.
是否有人在项目中维护此代码,以便我们可以像任何其他javascript代码一样实际测试此代码(例如通过jspec,模拟依赖项),在同一存储库中的版本我们对其余代码进行版本化,可能是在单独的文件夹.. 是否可以使用?或者由于某种原因我不应该知道它好吗?
我想要的是做一个rake任务的一些方法,我的couchdb设计文档与项目同步,这可能是有用的.
在ruby的情况下,使一些动态魔法发生也是有帮助的(例如默认视图和验证,通过使用命名范围的新视图).