在Jasmine测试中模拟Stripe错误?

时间:2015-04-16 13:27:37

标签: javascript testing jasmine stripe-payments

以下代码在测试环境中引发错误,因为未定义StripeCheckout

var handler = StripeCheckout.configure({
  key: 'pk_test_...',
  image: '/images/marketplace.png',
  token: function(token) {
    process(token);
  }
});

如何创建Stripe Mock?

我觉得这样的事情可能有用:

function StripeMock(){
}

StripeMock.prototype.configure = function( config ){
  console.log('configure');
}

var StripeCheckout = new StripeMock();

但我得TypeError: 'undefined' is not a object

那么,模拟StripeCheckout对象的好方法是什么?

2 个答案:

答案 0 :(得分:1)

为什么你不使用间谍?

http://jasmine.github.io/1.3/introduction.html

http://tobyho.com/2011/12/15/jasmine-spy-cheatsheet/

类似的东西:

StripeCheckout = {
    configure: jasmine.createSpy("configure() spy");
};

答案 1 :(得分:1)

间谍可能是一个更好的主意,但让它与JS功能一起工作:

function StripeMock(){
}

StripeMock.prototype.configure = function( config ){
  console.log('Stripe Mock init.');
  return new Handler();
}

function Handler(){
}
Handler.prototype.open = function(params){
  console.log('Stripe Mock handler opened.')
}
Handler.prototype.close = function(){
}

var StripeCheckout = new StripeMock();