问题标签 [ember-testing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2531 浏览

ember.js - 如何测试在组件余烬测试中调用的操作

如何测试组件中是否调用了某个操作?

有多种触发动作的方法,例如单击按钮。现在我想测试单击该按钮时调用的操作是否被实际调用。什么东西之类expect.functionName.to.be.called的。

我有以下代码

所以我只是想知道我能在那里做什么?

0 投票
1 回答
1122 浏览

ember.js - Ember - triggerEvent 助手

我无法在 ember 验收测试中触发“更改”事件。

我有一个带有观察到的“价值”属性的范围滑块。在更改时,滑块会发送一个 api 请求,该请求会根据滑块值使用参数更新 url。

我可以使用 jQuery 在我的测试中更改滑块的值,它成功地更新了 UI 中的滑块...

$("#slider").val(3.0).change();

...但是没有触发更改事件,因此没有 api 调用。对于类似的测试,相同的设置可以正常工作,我可以使用“click”或“fillIn”来触发请求。

我试过同时使用运行循环和 triggerEvent 助手(见下文),但没有运气。

我是否错误地设置了 triggerEvent()?有没有更好的方法来处理这个?

0 投票
1 回答
132 浏览

ember.js - Ember.js - 随机模块中的一项测试总是失败

我所有的测试都通过了,但是每次在随机模块上运行都会出现一个错误。即使它是一个空的控制器或路由。

消息说:

未捕获的错误:断言失败:尝试在没有容器的对象上查找注入的属性,请确保该对象是通过容器实例化的。

在此处输入图像描述

有人知道如何调试它吗?

余烬:2.2.0

Ember-Data 2.2.0

Ember-Cli:2.2.0-beta-3

0 投票
1 回答
274 浏览

twitter-bootstrap - 集成测试期间引导折叠动画不起作用

我正在对我的 ember 应用程序进行集成测试,但我的一个测试失败了,因为我的测试运行后承诺解决了。我的承诺包含一个动画事件(bs 崩溃)。这是我要测试的代码的一部分:

正如你所看到的,我将一个 defer 对象传递给控制器​​,控制器将根据一些标准来解决它,如果 defer 对象得到解决,它会在组件上执行折叠动画并关闭它。我的测试代码如下所示:

当我调试它时,我可以看到我的断言首先被击中,然后从 animateClose 返回的承诺解决了导致我的测试失败。我该如何解决这个问题?谢谢。

更新:事实证明我的组件由于某种原因没有完全崩溃,因此“animateClose”中的解析没有被触发。不知道为什么折叠事件没有完成并且 dom 处于“折叠”状态

临时解决方案:现在我放弃了引导折叠并使用 jquery 幻灯片动画代替,我的测试工作正常。测试环境中一定发生了一些与引导折叠动画/事件相混淆的事情。

0 投票
0 回答
109 浏览

ember.js - 单独运行时通过的 Ember 间歇性验收测试失败

我希望能获得一些关于为什么我会出现间歇性测试失败的线索。我有一个验收测试在我运行整个模块时失败,但所有单独的测试在单独运行时都通过了。这个问题似乎与使用围绕断言的循环有关,因为我有两个不同的测试失败,并且都有一个类似这样的 forEach 循环:

首先,这种方法有什么问题吗?如果有,围绕数据数组构建一组断言的正确方法是什么。如果不是,还有什么可能导致问题?即使您只能提供间歇性故障的可能方案,它也可能引导我走向正确的方向。现在没有错误,这让我发疯。我不确定夏洛克·福尔摩斯能不能找到这个。

0 投票
1 回答
232 浏览

javascript - Ember 组件,如何等待随机的 jQuery 插件初始化?

我有一个包装随机 jQuery 插件的 Ember 组件。

该插件需要大约 250 毫秒才能显示在屏幕上,这导致我编写验收测试,如下所示:

我的目标是改变组件,这样我就可以依靠click测试助手来阻止,直到 jQuery 元素出现在屏幕上。类似的东西didInsertElement或运行循环等待一旦元素出现在屏幕上我就可以解决的承诺将是完美的。这样的事情存在吗?

0 投票
2 回答
855 浏览

ember.js - 在 ember-cli-mirage 中引入瞬时延迟

我正在使用 ember-cli-mirage 进行验收测试。对于特定情况,我想检查通过慢速连接获取数据时的行为。

ember-cli-mirage 中有一个设置timing可以模拟响应的延迟。但是,不能将此设置更改为在特定测试中有所不同:

我尝试过的其他方法是在假端点返回一个承诺。通过一些导入/导出,我可以控制我的测试中承诺的解决方案。不幸的是,ember-cli-mirage 似乎没有将返回值识别为一个承诺,而是简单地将它逐字传递回适配器:

问题:有没有办法做到这一点?即:控制ember-cli-mirage中特定响应的延迟?

0 投票
1 回答
76 浏览

ember.js - 构建工件的 Ember 验收测试

在 Ember 中是否有标准的验收测试构建工件的方法?一个特定的用例是运行addAddonToProjector的插件addBowerPackageToProject,然后断言bower.jsonor是否符合package.json您的预期。

0 投票
1 回答
584 浏览

ember.js - Ember 测试在配置/环境中导入失败

当我ember test在一个项目上运行时,我收到了这个错误


我不确定如何调试它,因为这是在测试套件中发生的,并且没有调试窗口,放置debugger;也无济于事。这也是别人的项目。

这在 ember-cli 或任何包中都不是问题,因为我创建了一个新的 ember 应用程序并编写了一些验收测试而没有任何此类错误。我不确定如何跟踪或调试此错误。

0 投票
1 回答
325 浏览

ember.js - Ember Simple Auth 1.0 测试助手

我最近从 0.8 升级到 1.0,我的应用程序运行正常。

让我感到惊讶但我仍然不明白的一件事是应该如何使用新的验收测试助手。

以前(0.8)我可以这样写我的测试,他们会通过:

但是,在以新格式升级和重写它们之后:

现在只有第一个断言通过。

如果我将它们分成单独的测试,即:

然后这些单独的测试通过了,但我似乎无法让它们在实际用例中工作。

任何想法为什么会发生这种情况以及如何解决它将不胜感激。