【问题标题】:HAML-Fixtures with jasmineHAML-茉莉花夹具
【发布时间】:2011-06-28 06:33:45
【问题描述】:
是否可以将haml-fixtures 与jasmine-jquery 结合使用?
我对必须创建大量静态 html-fixtures 并不满意,因为我所有的视图都是用 haml 编写的。因此,我不仅需要创建大量重复的代码,而且还必须将(已经重复的)代码重写为 HTML。双重痛苦。
有什么建议吗?最佳实践?到目前为止,有人使用过 jasmine-jquery 和固定装置吗?
【问题讨论】:
标签:
jquery
ruby-on-rails
haml
jasmine
【解决方案1】:
是的。我知道有 3 条路径:
像现在这样手动创建夹具。这感觉就像重复的代码。优点是它非常简单(而且很直观,因为很多人都是这样开始的)。从长远来看,我认为它可以帮助您减少标记和 jQuery 脚本之间的耦合。我发现使用这种技术鼓励我找出我的 jQuery 代码所需的最简单的标记。
这可能就是您正在寻找的答案。从您的haml 模板生成的固定装置。 This blog post 将引导您完成一种方法,但谷歌可以向您展示更多。这很好,因为可以保证 haml 代码和 JS 是同步的。不利的一面是,它的一些复杂性可能——而且确实——会出错。
我最近的所有项目都走得更远,消除了对生成标记的基本依赖。我的模板通常会在页面上输出一个 <div> 以及一些数据属性,并且 Javascript 会为我构建所有 DOM 元素(而不是 haml)。 Javascript based templates 促进这一点。 Jasmine 测试非常简单,通常可以在没有固定装置的情况下进行测试,使用 var $dom = $('<div>'); 作为整个固定装置。如果您无论如何都必须处理客户端上的数据,我发现这总体上更简单。