如何加载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();
});
});
});
});
答案 0 :(得分:0)
运行getScript
之后但在加载脚本之前,页面上存在Stripe
对象之前,可能存在一个异步周期。
摩卡咖啡支持asynchronous callbacks,因此请尝试一下,像这样:
describe("constructor", function() {
before(function(done) {
$.getScript('script url here', function() {
done();
});
});
});
Mocha的最新版本支持直接返回承诺,因此您也可以这样做。