我将 Velocity 与 mike:mocha 框架和 chai 断言一起使用。一切都很好,但是当需要进行 stubbing、mocking 和 spying 时,我遇到了一些障碍。这些不是 mike:mocha 或 chai 的核心功能,所以我找到了 practicalmeteor:chai ,应该/可能添加了 spy 。
我第一次尝试确定这是否属实是编写以下代码:
it 'calls update when both documents are present but different', ->
spies.create('log', console, 'log')
这给了我:
ReferenceError: spies is not defined
at packages/velocity:test-proxy/tests/mocha/server/charger_server_doc_spec.coffee:88:9
at wrappedFunc (packages/mike:mocha/server.js:200:1)
at runWithEnvironment (packages/mike:mocha/server.js:156:1)
这对我来说意味着我误解了实用meteor:chai 提供的内容,但是,我在第一个示例中显示的代码是从 README 中逐字复制的。
问题:关于让它工作的任何提示?是加载顺序问题吗? Github上的代码展示spies等都是在这个包中实现的。所以我有点卡住了。
谢谢!
最佳答案
包裹practicalmeteor:chai
不包括 practicalmeteor:sinon
获取 spies
所需的包包括 API。
它们是单独的包,因为在使用 chai 创建基本测试时您可能不必使用 spies。
如果你看 package.js practicalmeteor:chai
中的文件包,它不包括 sinon 文件。
所以,只需运行 meteor add practicalmeteor:sinon
应该可以解决您的问题。
关于使用 spy 进行 meteor 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27747545/