如何在coffeescript中检查rails的测试环境?

时间:2015-01-24 00:55:33

标签: ruby-on-rails testing coffeescript

在运行集成测试和黄瓜方案时,我想要避免一些coffeescript代码。我试图弄清楚是否有一种简单的方法来反省运行时环境,这样如果它进行了测试,它会做一件事,否则做另一件事。 / p>

我不想将ERB解析添加到coffeescript文件中。有没有其他方法可以知道它是否在测试环境中运行?

这里是snippit。它会在您离开页面时设置窗口警报。这会弄乱我的黄瓜代码,所以如果我在Rails.env ==' test'

下运行,我想简单地跳过它。
setupNavigateAwayProtection: ->
  window.onbeforeunload = =>
    if @promptForChanges()
      message = "You are about to lose your changes"
    message

promptForChanges是一个检查内容是否已更改的函数。所以我可以想象一个类似的版本:

window.onbeforeunload = =>
  if @promptForChanges() && !@test
    message = "You are about to lose your changes"
  message

但如果我正在运行测试,我如何定义@test为真?

谢谢, 丹

1 个答案:

答案 0 :(得分:0)

您的代码在测试期间不应有不同的行为

相反,为什么不将此逻辑封装在不同的文件中,将其包含在测试中?

这样,系统的行为将受到影响,但您的代码不必了解它 - 您的测试配置确实如此。