在运行集成测试和黄瓜方案时,我想要避免一些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为真?
谢谢, 丹
答案 0 :(得分:0)
您的代码在测试期间不应有不同的行为。
相反,为什么不将此逻辑封装在不同的文件中,不将其包含在测试中?
这样,系统的行为将受到影响,但您的代码不必了解它 - 您的测试配置确实如此。