如何在茶匙茉莉花测试中添加脚本标签

时间:2019-07-01 14:32:27

标签: javascript jasmine teaspoon

如何加载Stripe脚本,以便在Teaspoon-Jasmine测试期间定义Stripe。

错误:

  

失败/错误:ReferenceError:条带未定义

Teaspoon测试:

describe("Stripe", function() {
  var paymentElement ;

  describe("constructor", function(){
    beforeAll(function(){
     // Tried this..

      var head = document.getElementsByTagName('head')[0];
      var jQueryScript = document.createElement('script');
      jQueryScript.setAttribute('type', 'text/javascript');
      jQueryScript.setAttribute('src', 'https://js.stripe.com/v3/');
      head.appendChild(jQueryScript);

     // also tried..

      $.getScript( "https://js.stripe.com/v3/");

      paymentElement = new Helpers.Stripe.PaymentElement(); 
    });

    describe("with defaults", function(){
     it("should define stripe", function(){
        expect(Stripe('test-token')).toBeDefined();
      });

      it("should define stripe through instance", function(){
        expect(paymentElement.stripe).toBeDefined();
      });

    });
  });
});

1 个答案:

答案 0 :(得分:0)

运行getScript之后但在加载脚本之前,页面上存在Stripe对象之前,可能存在一个异步周期。

摩卡咖啡支持asynchronous callbacks,因此请尝试一下,像这样:

  describe("constructor", function() {
    before(function(done) {
      $.getScript('script url here', function() {
        done();
      });
    });
  });

Mocha的最新版本支持直接返回承诺,因此您也可以这样做。