为Stripe创建一个Mock或在Stripe对象上使用Stub?

时间:2015-08-28 15:20:45

标签: javascript backbone.js mocha stripe-payments sinon

我正在为使用Backbone的{​​{1}}应用编写测试。我正在使用Stripe来运行测试。在我的mocha-phantomjs文件中,我index.html获取<script src="https://js.stripe.com/v2/" type="text/javascript"></script>的代码。 但是,当我运行测试时,我收到错误: Stripe,这是有道理的,因为我没有使用ssl证书运行测试命令。

我通过创建本地ReferenceError: Can't find variable: Stripe文件并将js缩小的代码复制到其中来实现它,从而超越了对ssl证书的需求并且我的测试通过了。

但我的问题是,这是最佳做法吗?

我是否应该创建一个stripe's模拟对象sinon并使用它来代替或者更有意义来存根Stripe对象以防止对{Stripe进行任何调用{1}} API?

1 个答案:

答案 0 :(得分:2)

我认为最好记住的是分离关注点。

Stripe是第三方服务,因此我不认为在单元测试中使用此类服务​​是最明智的选择。

这些是单元测试 - 可能是你的骨干控制器;所以测试应该严格只测试控制器代码。

因此,我会模拟控制器所需的必要对象和方法。同样,这样,您的单元测试依赖性更加清晰。