问:如何在RSpec中执行JavaScript库?

时间:2018-02-24 03:08:16

标签: javascript ruby-on-rails rspec execjs

我想在RSpec中执行一些JS库。

例如

我可以执行"付款库" HTML中的JavaScript库如下所示。

<!DOCTYPE html>
<html>
   <head>
      <script src="https://sample.example/payment.js"></script>
   </head>
   <body>
      <div id="foo"></div>
   </body>
   <script>
      $(document).ready(function(){
         // Payment depends on "https://sample.example/payment.js"
         Payment.init("11111");
         Payment.getToken({cardNo: "1111111111111111", expired: "2001"});
       });
   </script>
</html>

是否可以加载外部JavaScript库,例如使用&#34; script&#34; RSpec中的标签就像这样。

js_code = <<'EOS'
{
         <script src="https://sample.example/payment.js"></script>
         Payment.init("11111");
         Payment.getToken({cardNo: "1111111111111111", expired: "2001"});
}
EOS

ExecJS.eval js_code

请求给我任何建议。

感谢。

1 个答案:

答案 0 :(得分:0)

一个很好的阅读,最近足以将其考虑在内:https://robots.thoughtbot.com/headless-feature-specs-with-chrome

基本上,在验证测试之前,它会等待你的js(你在页面中包含的js)完成执行。这就是你想要的。

从那里开始,建议避免任何js注入(即使它可用),然后完全依赖无头浏览器设置