我目前正在研究流星框架,这个问题立即浮现在脑海。我编写的代码(例如 Template.xxx 代码或 Template.xxx.events)实际上是否可以以任何方式进行测试?
当然,您可以像测试任何其他代码一样测试未绑定到流星运行时的代码,但我的印象是,您将在流星内部编写的大多数代码都以某种方式限定于流星及其功能。
我目前正在研究流星框架,这个问题立即浮现在脑海。我编写的代码(例如 Template.xxx 代码或 Template.xxx.events)实际上是否可以以任何方式进行测试?
当然,您可以像测试任何其他代码一样测试未绑定到流星运行时的代码,但我的印象是,您将在流星内部编写的大多数代码都以某种方式限定于流星及其功能。
除了未记录的Tinytest(请参阅视频教程)及其助手之外,似乎还没有任何官方测试框架,但是您始终可以像我在github上的这个简单示例中所做的那样对 Meteor 框架 API 进行存根/模拟.
我想对于非平凡的应用程序可能会变得更加困难,因此将核心应用程序逻辑与 Meteor API 调用分开可能是一个好主意。
截至 2014 年 2 月,Meteor 代码可以使用内置的Tinytest框架进行单元测试,只要您将所有应用程序代码移动到包中,无论如何您都应该这样做。快速而肮脏的方式相当于添加package.js
文件。该文件用于:
这是 Eventedmind 的一个例子 - https://github.com/EventedMind/meteor-file
您可以在meteor-file-test.js中看到它访问的内容,它在package.jsMeteorFile
中声明为导出。
我认为它是可测试的,尽管我没有深入研究它。
如果您打开liveui
包 ( $METEOR_HOME/packages/liveui
),似乎有很多单元测试是使用TinyTest
和测试渲染编写的。我认为这将是一个很好的起点:-
等等
希望有帮助
我在这里创建了一篇博文,展示了如何在 Meteor 中进行有效的单元测试,以及 GitHub 上的示例项目。希望能帮助到你。
Velocity 已被选为流星 1.0 的官方测试框架。该公告已在上一次流星开发商店(2014 年 6 月)上发布。
使用速度开发的软件包: