小编Phi*_*ger的帖子

如何选择Backbone集合的属性

我想从Backbone集合中创建一个特定属性值的数组.

var days = _.select(
    this.collection.models,
    function(model) {
        return model.attributes.type === 'session';
    }
);

days = _.pluck(days, 'attributes'),
days = _.pluck(days, 'date');
Run Code Online (Sandbox Code Playgroud)

这有效,但似乎效率低下.有没有办法在不必定义days三次的情况下完成同样的事情?

javascript backbone.js underscore.js backbone.js-collections

15
推荐指数
4
解决办法
2万
查看次数

qunit - 测试异常消息?

因此,QUnit提供"raise"断言来测试是否抛出异常.有没有办法测试异常引发的实际消息?例如,假设我有这个功能:

throwError = function(arg) {
  var err = new Error();
  if (typeof arg === 'undefined') {
    err.message = 'missing parameter';
    throw err;
  }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够按照以下方式写一些东西:

raises(
  function(){throwError();},
  Error.message,
  'missing arg'
);
Run Code Online (Sandbox Code Playgroud)

理想情况下,此测试将失败,因为异常消息是"缺少参数",我希望它"缺少arg",但它通过,因为qunit只检查是否引发了错误.有什么方法可以检查抛出异常的实际内容?

javascript tdd unit-testing exception-handling qunit

10
推荐指数
1
解决办法
3185
查看次数

在git repo中包含测试框架?

我正在慢慢地对我的常规工作流程进行git和单元测试.我很欣赏有关单元测试框架(不是测试本身,而是实际框架)是否应该包含在项目的git repo中的建议.

一方面,它似乎不应该,因为框架a)在其他地方很容易获得,并且b)不是项目独有的(我在谈论流行的框架,例如JS的qunit或PHP中的simpletest).在这种情况下,也许在repo中的一个简单的自述文件指示框架的版本以及从何处获取它就足够了.

另一方面,测试是项目的一部分(和repo的一部分),并且确实需要框架运行,所以为了完整起见,也许框架也应该被包含在内?

谢谢.

git unit-testing

8
推荐指数
1
解决办法
1074
查看次数

何时使用Ruby vs何时使用PHP

我一直在学习Ruby,只是为了好玩到目前为止(当前没有项目需要Ruby).我很喜欢,但我也喜欢PHP.我知道"将Ruby与PHP进行比较"是一个毫无意义且经常被问到的问题.那不是我要问的.相反,我会对一种语言何时对另一种语言有意义的例子感到好奇.毕竟,这就是为正确的工作找到合适的工具,而我正在努力更好地了解Ruby的"正确工作".

我对社区的大小或部署的简易性等问题不感兴趣 - 我认为随着Ruby越来越受欢迎,这对PHP来说不再是一个问题.相反,在网上完成工作的世界里,Ruby自然而然地作为一种比PHP更合适的解决方案?另外,为了清楚起见,假设PHP5以面向对象的方式编写:-)

谢谢.

php ruby

5
推荐指数
1
解决办法
4945
查看次数

小胡子:从模板中检索标签列表/哈希?

我见过的所有 Mustache 文档和示例都展示了如何使用哈希来填充模板。我有兴趣走向另一个方向。EG,如果我有这个:

Hello {{name}}
Run Code Online (Sandbox Code Playgroud)

Mustache 可以生成这个(伪代码):

tags = 'name'
Run Code Online (Sandbox Code Playgroud)

我使用的是 PHP 风格的 Mustache,但我对这种语言并不太挑剔。我想做的是构建一个系统,人们可以在其中创建带有 Mustache 标签的模板,而其他开发人员可以快速查看模板需要哪些数据。这是 Mustache 可以做的事情,还是我必须做一些有趣的正则表达式魔法?

mustache

5
推荐指数
1
解决办法
1336
查看次数