我正在为我的 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/