tdd - Meteor 测试驱动开发

标签 tdd meteor

我不知道如何在meteor中进行测试驱动开发。

我在文档或常见问题解答中没有看到它被提及。我没有看到任何例子或类似的东西。

我看到一些软件包正在使用 Tinytest。

我需要开发人员的回应,这方面的路线图是什么。大致如下:

  • 可能,没有文档,自己解决
  • meteor 的构建方式并不适合您制作可测试的应用
  • 这是计划中的功能
  • 等等

最佳答案

更新 3:从 Meteor 1.3 开始,meteor 包括 testing guide包含有关单元、集成、验收和负载测试的分步说明。

更新 2:截至 2015 年 11 月 9 日,Velocity is no longer maintained 。 Xolv.io 的重点是 Chimp ,以及 Meteor Development Group must choose an official testing framework .

更新:VelocityMeteor's official testing solution自 0.8.1 起。

<小时/>

目前关于使用 Meteor 进行自动化测试的文章还很少。我希望 Meteor 社区在官方文档中建立任何内容之前能够发展测试最佳实践。毕竟本周Meteor达到了0.5,而且事情还在快速变化。

好消息:您可以使用 Node.js testing tools与 meteor

对于我的 Meteor 项目,我使用 Mocha 运行单元测试使用Chai对于断言。如果您不需要 Chai 的完整功能集,我建议使用 should.js反而。我目前只有单元测试,不过您也可以使用 Mocha 编写集成测试。

请务必 place your tests in the "tests" folder这样 Meteor 就不会尝试执行您的测试。

摩卡支持 CoffeeScript ,我为 Meteor 项目选择的脚本语言。这是 sample Cakefile包含运行 Mocha 测试的任务。如果您将 JS 与 Meteor 结合使用,请随意调整 Makefile 的命令。

您的 Meteor 模型需要稍作修改才能暴露给 Mocha,这需要了解 Node.js 的工作原理。将每个 Node.js 文件视为在其自己的范围内执行。 Meteor 自动将不同文件中的对象相互公开,但普通 Node 应用程序(如 Mocha)不会这样做。为了使我们的模型可以通过 Mocha 进行测试,export每个 Meteor 模型都具有以下 CoffeeScript 模式:

# Export our class to Node.js when running
# other modules, e.g. our Mocha tests
#
# Place this at the bottom of our Model.coffee
# file after our Model class has been defined.
exports.Model = Model unless Meteor?

...并在 Mocha 测试的顶部导入您想要测试的模型:

# Need to use Coffeescript's destructuring to reference
# the object bound in the returned scope
# http://coffeescript.org/#destructuring
{Model} = require '../path/to/model'

这样,您就可以开始使用 Meteor 项目编写和运行单元测试了!

关于tdd - Meteor 测试驱动开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12987525/

相关文章:

javascript - 在观察者中发布附加游标

javascript - Meteor + overflow-y : scroll makes window. scrollTo 不起作用

javascript - MongoDB 在匹配的键值对旁边插入数据

java - TestNG 异常 :com/beust/jcommander/ParameterException

测试 Chef 角色和环境

python - Python 中的 TDD 与大数据

java - 从单元测试中产生一个单独的进程

asp.net-mvc - 使用 Moq 模拟 FormsIdentity.Ticket.UserData

mongodb - 从 Meteor 集合中获取随机文档

heroku - 加密 key 未经授权用于持续部署 Travis → Heroku