【问题标题】:Unit testing an EmberJS App (an actual unit test)对 EmberJS 应用程序进行单元测试(实际的单元测试)
【发布时间】:2014-06-03 08:08:57
【问题描述】:

我想假设我知道 Ember QUnit(最近在 EmberConf 上介绍过)以及使用 PhantomJS,所以如果你想标记为重复,请仔细阅读我的问题。

我的目标是从命令行运行单元测试,类似于可能运行的 mocha 测试

mocha simple_test.js

并以命令行报告器的形式查看结果。

  1. 单独测试 ember 模块。我希望能够在没有正在运行的 ember 应用程序(可能是某种 ember 测试工具)的上下文的情况下新建一个 ember 对象、路由或控制器,并针对该模块运行断言。
  2. 在命令行中测试 ember 模块(避免使用 QUnit 之类的浏览器报告器或 PhantomJS 之类的无头浏览器)

我已经使用 karma 和 phantomjs 进行了集成和验收测试,我想看看我是否可以补充更多的单元测试。有没有人遇到过类似于我上面列出的单元测试设置,或者它真的不可能和/或没有效率?

更新 ember 指南在这里列出了单元测试策略: http://emberjs.com/guides/testing/unit/

在我看来,这些看起来更像是集成测试。

【问题讨论】:

    标签: javascript unit-testing ember.js


    【解决方案1】:

    是的,我在我的应用程序中执行此操作。如果您还没有看过 ember 站点文档中的新测试指南(上周某个时间上线了),您可能想查看它。我帮助编辑了它。这是相当不错! :-)

    祝你好运,如果您需要更多帮助,请告诉我,就像我说的,我一直在 Ember 的所有部分进行单元测试。到目前为止,对我来说最难的是组件,因为它们既不是集成也不是单元,真的……它们就像一个混合体:孤立的集成单元测试仍然需要大部分 ember 和在视图中渲染。

    我使用guard、jasmine qunit 无头运行。 Jasmine 是我的偏好,我已经慢慢从 qunit 转移过来了。

    http://emberjs.com/guides/testing/

    我还注意到,您似乎想要将单元隔离到甚至 ember 本身之外。为此,我会将您的代码放在单独的 javascript 库中...否则您将遇到麻烦:毕竟,如果使用 Ember,您将如何对没有 Ember 的一段代码进行单元测试?

    【讨论】:

    • 感谢您的回复。我想我仍在努力完善我的要求,但我知道我想针对没有上述浏览器或无头浏览器的 ember 应用程序编写测试。可能正在寻找 ember 测试工具?我有一些类似于你提到的策略的集成测试,但我正在努力争取更接近单元测试的东西。当我说单元测试时,我想到的是孤立的测试。这里的 ember 单元测试指南,emberjs.com/guides/testing/unit 对我来说错过了单元测试的价值,它们看起来仍然像集成测试
    • 是的,有点。如您所知,Ember 是一个前端应用程序框架。没有理由不能对 ember 对象进行单元测试,是吗?不知道为什么没有?我已经做了很多。这就像对任何其他 javascript 代码进行单元测试一样。非常非常简单。您需要什么帮助?
    • 显然,无论您做什么,都需要一个 javascript 运行时。在浏览器上下文之外(甚至是无头)测试 ember 没有什么意义,因为这是您的代码将执行的地方。另外,我不确定您是否意识到这一点,但您可能不会遇到通常会出现的问题,因为浏览器 javascript 运行时执行 javascript 的方式与非浏览器运行时不同。因为 ember 是一个 Web 应用程序框架,所以您应该始终在这种情况下进行测试,恕我直言。
    • 更详细一点,我在考虑服务器端节点和没有浏览器上下文(无头或其他)的余烬。我意识到我正在推动普通 ember 应用程序在其中工作的当前界限,所以我正在寻找的东西很可能还没有完全可用,但我确信我不是唯一一个沿着这些思路思考的人 :) 再次感谢您的回复。
    • 我将此标记为答案,因为这可能是 ember 的现状,因为它与单元测试有关,但会相应更新。
    猜你喜欢
    • 2012-03-21
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 2012-01-08
    • 1970-01-01
    • 2010-09-11
    相关资源
    最近更新 更多