小编tel*_*ent的帖子

如何使用Rails资产管道进行每页javascript

我理解,出于性能原因,最好让资产管道连接并缩小我的所有javascript,并将每个页面请求发送到整个批次.这很公平

但是,我的一堆javascript就像是将特定行为绑定到特定的页面元素之类的东西

$('button').click(function(e) { $('input.sel').val(this.name); }
Run Code Online (Sandbox Code Playgroud)

如果我知道这个代码只在那个页面上执行,我会感觉更舒服 - 而不是在其他页面上可能巧合地使用相同ID或匹配相同选择器的元素人们如何处理这个?

我宁愿不把所有这些东西都放在元素内联中,只是因为当它长度超过两行时,保持javascript正确缩进到.html.erb文件中是比它需要更多的工作

javascript ruby-on-rails asset-pipeline

14
推荐指数
1
解决办法
3854
查看次数

测试rspec中的多步骤工作流程

我想知道使用rspec测试多步骤工作流的习语或最佳实践.

我们以购物车系统为例,购买过程可能就是这样

  1. 当用户提交到购物篮并且我们没有使用https时,重定向到https
  2. 当用户提交到购物篮并且我们使用https并且没有cookie时,创建并显示新购物篮并发送回cookie
  3. 当用户提交到购物篮并且我们使用https并且有一个有效的cookie并且新商品用于与第一个商品不同的产品时,在购物篮中添加一行并显示两行
  4. 当用户提交到购物篮并且我们使用https并且有一个有效的cookie并且新项目与前一个产品相同时,增加该篮子线的数量并显示两个行
  5. 当用户点击篮子页面上的"结账"并使用https并且有一个cookie并且篮子非空并且......
  6. ...

我已经阅读了http://eggsonbread.com/2010/03/28/my-rspec-best-practices-and-tips/,它建议每个"it block"应该只包含一个断言:而不是进行计算然后在同一个块中测试多个属性,在上下文中使用"before"来创建(或检索)测试对象并将其分配给@some_instance_variable,然后将每个属性测试写为单独的块.这有点帮助,但在如上所述的情况下,测试步骤n需要完成步骤[1..n-1]的所有设置,我发现自己要么重复设置代码(显然不好),要么创建大量辅助函数越来越笨拙的名字(def create_basket_with_three_lines_and_two_products)并在阻止之前的每个步骤中连续调用它们.

关于如何做到这一点的任何提示都不那么冗长/繁琐?我理解这个想法背后的一般原则,即每个示例都不应该依赖前面示例留下的状态,但是当您测试多步骤过程并且在任何步骤都可能出错时,为每个步骤设置上下文是不可避免地要求重新运行前n个步骤的所有设置,所以......

ruby bdd rspec

7
推荐指数
1
解决办法
1429
查看次数

标签 统计

asset-pipeline ×1

bdd ×1

javascript ×1

rspec ×1

ruby ×1

ruby-on-rails ×1