流星代码是否可以有效地进行单元测试?

时间:2012-08-30 14:00:08

标签: unit-testing meteor

我目前正在调查流星框架,这个问题立即浮现在脑海中。 我编写的代码(例如Template.xxx代码或Template.xxx.events)是否可以以任何方式测试?

当然,您可以像测试任何其他代码一样测试未绑定到流星运行时的代码,但我的印象是,您将在流星内部编写的大多数代码都以某种方式限定为流星及其功能。

5 个答案:

答案 0 :(得分:6)

除了undocumented Tinytest(参见video tutorial)及其helpers之外,似乎还没有任何官方测试框架,但你可以随时存根/嘲笑Meteor框架API就像我在github上的这个简单示例中所做的那样。

我认为对于非平凡的应用程序来说可能会变得更加困难,因此将核心应用程序逻辑与Meteor API调用分开可能是一个好主意。

答案 1 :(得分:5)

截至2014年2月,只要您将所有应用程序代码移动到软件包Tinytest中,Meteor代码就可以使用内置的which you should do anyway框架进行单元测试。快速和肮脏的方式相当于添加package.js文件。该文件用于:

  1. 声明您的出口。 clean namespacing拥有one global object for your app
  2. 是一种很好的做法
  3. 声明您的测试文件
  4. 这是Eventedmind的一个例子 - https://github.com/EventedMind/meteor-file

    您可以在meteor-file-test.js中看到它访问了MeteorFile,{{1}}在package.js中被声明为导出。

答案 2 :(得分:1)

我认为这是可以测试的,尽管我没有深入研究过它。

如果打开liveui包($METEOR_HOME/packages/liveui),似乎有很多单元测试使用TinyTest编写并测试渲染。我认为这将是一个很好的起点: -

  • liveui_tests.js
  • liveui_tests.html

希望有所帮助

答案 3 :(得分:1)

我在这里创建了一篇博文,展示了如何在Meteor中进行有效的单元测试,以及GitHub上的示例项目。希望它有所帮助。

http://blog.xolv.io/2013/04/unit-testing-with-meteor.html

答案 4 :(得分:1)

Velocity已被选为流星1.0的官方测试框架。该公告已在last meteor devshop (june 2014)

中公布

使用velocity开发的包: