【问题标题】:Is meteor code effectively unit testable?流星代码是否有效地单元测试?
【发布时间】:2012-08-25 06:51:22
【问题描述】:

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

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

【问题讨论】:

标签: unit-testing meteor


【解决方案1】:

除了undocumented Tinytest(参见video tutorial)和它的helpers 之外,似乎还没有任何官方测试框架,但是您可以像我一样随时存根/模拟 Meteor 框架 API在github 上的这个简单示例中完成。

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

【讨论】:

  • 感谢您提供的示例 :) 似乎这就是我正在寻找的。但它仍然让我有点困扰,没有“简单”的方法可以做到这一点。特别是因为你不能总是分开逻辑。
【解决方案2】:

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

  1. 声明您的出口。 clean namespacing 拥有 one global object for your app 是一种很好的做法
  2. 声明您的测试文件

这是 Eventedmind 的一个例子 - https://github.com/EventedMind/meteor-file

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

【讨论】:

  • 感谢您的回答。我已更新接受的答案以反映当前状态。
【解决方案3】:

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

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

  • liveui_tests.js
  • liveui_tests.html

等等

希望有帮助

【讨论】:

  • 请在此处查看我的答案以获得更多见解:stackoverflow.com/questions/12987525/…。 tl;dr 这是流星核心团队已经知道的问题。我正在帮助把这个问题放到最前面,并帮助他们实施一些确定的方法来解决流星的 TDD。 :)
【解决方案4】:

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

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

【讨论】:

    【解决方案5】:

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

    使用速度开发的包:

    【讨论】:

      猜你喜欢
      • 2010-11-19
      • 2016-03-30
      • 1970-01-01
      • 2022-11-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多