【问题标题】:How do we make Trek's Pretender play nice with Ember Testing?我们如何让 Trek 的 Pretender 与 Ember 测试相得益彰?
【发布时间】:2014-06-19 08:41:58
【问题描述】:

所以,我当前的 Ember 项目是使用 Ember App Kit 构建的。我的测试是使用美妙的 httpRespond 来模拟 ajax 请求。

但是,我开始注意到,虽然 httpRespond 很棒,但您实际上只测试应用如何响应来自 API 的响应,而不是测试应用如何响应来自用户的交互。我想这方面的一个例子是提交一个带有服务器端字段验证的表单。

使用 httpRespond,您可以模拟出响应,无论请求是什么样的,都会返回该响应。因此,我基本上可以单击表单上的提交按钮并成功提交表单,而无需填写任何字段。这感觉就像我们错过了一些东西。

输入 Trek 的Pretender。这有点像 httpRespond 的升级版。它看起来有点像一个模拟服务器,但只是模拟了 httpRespond 之类的 xhr。除非您可以访问请求,您可以在决定返回什么响应之前对其进行检查。

我非常喜欢这个想法,我想使用它。不过……

Pretender 还不知道 Ember 测试。 httpRepond 了解 Ember 的异步工作原理,并将等待 Ember 中的异步事件完成,然后再进行测试。然而,伪装者还没有这样做。

例如,如果我在 Ember 应用程序中单击一个链接,该链接会启动几个不同的异步事件,我的测试不会等待这些异步事件完成后再继续,因此,测试会在异步事件完成之前完成执行.

这让我想到了我的问题......

我们如何让Pretender Ember 测试感知?

Trek 提到这是他还没有做的事情,但我不确定他什么时候有时间去做。所以如果可能的话,我很乐意让它继续下去。

有没有人对我们如何尝试这个有任何想法?

【问题讨论】:

  • "例如,如果我在 Ember 应用程序中单击一个链接,该链接启动了几个不同的异步事件,我的测试不会等待这些异步事件完成后再继续,因此,测试完成执行在异步事件完成之前。”你能jsbin一个例子吗?我无法解析它。
  • 是的,会做 Trek。也很有意义,但没有机会。我会尽我所能尽快给你一些东西

标签: ember.js


【解决方案1】:

我在ember-cli-mirage 上取得了很大的成功。它位于伪装者之上,允许您创建用于开发的固定装置和用于测试的工厂。如果您对此仍有问题,或者对于其他任何人,这是控制您的应用开发数据的一种非常简单的方法。

【讨论】:

    猜你喜欢
    • 2013-03-19
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 2014-05-01
    相关资源
    最近更新 更多