javascript - 创建 Stripe 的 Mock 还是在 Stripe 对象上使用 Stub?

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

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

我通过创建本地 js 来让它工作文件并复制 stripe's将代码压缩到其中,从而覆盖了 ssl 证书的需要,并且我的测试通过了。

但是我的问题是这是否是最佳实践?

我应该创建一个 sinon Stripe 的模拟对象并使用它来代替,或者 stub Stripe 更有意义吗?对象以防止对 Stripe 进行任何调用API?

最佳答案

我认为这里要记住的最好的事情是关注点分离。

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

这些是单元测试 - 大概是针对您的 Backbone Controller ;因此测试应该严格只测试 Controller 代码。

因此,我会模拟 Controller 所需的必要对象和方法。这样,您的单元测试依赖关系就会更加清晰。

关于javascript - 创建 Stripe 的 Mock 还是在 Stripe 对象上使用 Stub?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32274483/

相关文章:

javascript - 页面更改时重置浏览器缩放级别

Javascript Backbone模型设计

node.js - 如何测试使用 JWT 身份验证的 Node API(使用用户登录获取 token )

javascript - 严格平等是否能保证松散平等

unit-testing - Gulp Mocha 和 Browserify 的绝对路径

javascript - Bootstrap tabbable 和 popover 之间的冲突

javascript - 如何在另一个页面显示componentDidMount获取数据?

javascript - JavaScript 中闭包的实际用途是什么?

javascript - 初始化路由器内部的 View

javascript - Backbone.js - CSS 更改正在等待 javascript 完成 - 适用于 Firefox,不适用于 Chrome/Safari