0

我正在为diaspora* 社交网络做出贡献,并且大部分前端代码都是用主干编写的。Jasmine 用于测试该 javascript 代码,我发现根据测试的顺序,它们可能会失败。在测试之间没有正确清理数据。

该项目是开源的,所以让我直接链接代码。 例如,这一行Expected object not to have properties "reshared: 5",在测试开始时,有时会失败说,这是该测试的剩余结果,运行之前。

但是,请注意该集合在第二次测试运行之前已正确重置。但是如果你在该行之后放置一个断点,并target.unreadCountByType在 Firefox 控制台中输入,它将打印Object { reshared: 5 }. 因此,调用new app.collections.Notifications();实际上并没有(完全)重置集合。

该集合在此文件中定义,如您所见,已正确初始化 ( unreadCountByType: {})。

我认为问题出在这里。在这些行中,userChangedUnreadStatus每次parse调用函数时都会完成一个绑定。所以我想这应该在某个时候不受约束,放在这里我的调查被卡住了,因为我不知道骨干是如何工作的。

如果您想在本地运行测试,git clone git@github.com:diaspora/diaspora.git请使用 生成资产bin/rake tests:generate_fixtures,使用 启动 jasmine,RAILS_ENV=test bin/rake jasmine然后使用您的 Web 浏览器访问 http://localhost:8888/?spec=app.collections.Notifications 来运行测试。

欢迎任何帮助!

4

0 回答 0