在最小的单元测试中评估/验证所有应用程序JavaScript

时间:2015-06-03 00:28:48

标签: javascript jquery ruby-on-rails unit-testing

这是一个疯狂的尝试吗? :)

sprockets.context_class.class_eval do
  def image_path(dummy); end
  def asset_path(dummy); end
end

sprockets.append_path(Rails.root.join('app/assets/javascripts').to_s)
asset = sprockets['application.js']
jquery = File.read(File.join(Rails.root, "app/assets/javascripts/vendor/jquery.js"))
js = ExecJS.exec jquery + asset.to_s

我的前提很简单。我想要一个测试来加载和验证我的应用程序中的所有JavaScript资产。很多都是js.erb所以我需要首先推动它们通过资产管道(或以其他方式评估它们)。

我的想法是,就像我在Chrome中加载页面一样,它验证了我的应用程序的所有JS(因为它全部塞满了application.js),我应该可以用一个单元执行此操作测试。只有这绝对不起作用 - 我不断得到最随机的错误,例如:

ERROR (0:00:01.874) JS files should be using correct escaping
      TypeError: Cannot read property 'defaultView' of undefined

但我想要做的事情并不是那么特别 - 我确定其他应用程序也会将所有JS验证为测试的一部分......对吗?我在这里错过了什么?

为了更清楚地提出这个问题:如何在Rails单元测试中评估我的所有JS资产?

谢谢! :)

0 个答案:

没有答案