【发布时间】:2013-08-11 14:41:56
【问题描述】:
我正在使用 Mocha 和 Should.js 为我的 Node.js/Express/Mongoose 项目编写测试,并且我正在测试访问我的 MongoDB 的函数。我希望这些测试完全独立于我数据库中的实际记录,所以我想创建一个条目然后加载它,并对它进行所有测试,然后删除它。我写了我的实际函数(我在整个项目完成后编写测试),这样create 函数没有回调;它只是在完成后呈现一个页面。在我的测试脚本中,我在调用create 之后调用了我的load_entry 函数,但有时create 需要的时间比平时长,因此load_entry 在它实际上无法加载文章时会抛出一个错误,因为它尚未创建.有什么方法可以确保异步函数在不使用回调的情况下完成?
如果我可以提供更多信息,请告诉我。我浏览了整个谷歌,找不到任何真正回答我问题的东西,因为大多数解决方案只是说“使用回调!”
【问题讨论】:
-
出于测试目的,请查看 sinon.js(可在 npm 上获得)。它允许您将异步调用(例如 ajax 调用和超时等)存根。与 mocha 配合使用效果很好。
标签: javascript node.js asynchronous express mocha.js