【发布时间】: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