问题标签 [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 投票
1 回答
221 浏览

ember.js - 当我执行 App.reset 时,为什么我的reopenClass 状态不会重置?

我有一个简单的模型类,我用它来存储一些全局状态

当我使用 RC6 和 ember-testing 调用 App.reset() 时,我注意到全局人员数组中的任何状态都在测试之间保持不变。我确实看到一个日志显示在测试之间调用了拆卸,它只是没有清除人数。如何在 QUnit 拆解中重置它?

更新

如果你想在 RC6 中模拟“/”路由,一个错误会阻止你的模型钩子在你模拟 xhr 后再次触发(我希望在 RC7+ 中看到这个问题)

https://github.com/emberjs/ember.js/issues/2997

0 投票
2 回答
4313 浏览

ember.js - 如何进行路由转换的 Ember 集成测试?

我在使用 Toran Billup 的TDD 指南对 ember 进行集成测试时遇到问题。

我使用 Karma 作为 Qunit 和 Phantom JS 的测试运行器。

我敢肯定,if 的一半与我初学者对 Ember 运行循环的了解有关。我的问题是两部分:

1) 如何正确地将 vist() 测试包装到运行循环中?

2)如何测试转换?索引路由 ('/') 应转换为名为 'projects.index' 的资源路由。

在此先感谢您提供正确方向的任何指示。

0 投票
1 回答
1686 浏览

javascript - ember 集成测试错误。处理异步副作用

我正在尝试 ember 的集成测试包(http://emberjs.com/guides/testing/integration/),但我收到了这个错误

我制作了一个 JSBin 来重现这个错误: http: //jsbin.com/InONiLe/9,我们可以通过打开浏览器的控制台看到它。

我相信导致此错误的data.set('isLoaded', true);原因load()App.Posts. (代码链接:http: //jsbin.com/InONiLe/9/edit

现在,如果我将该data.set('isLoaded', true);行包装在一个 中Ember.run(),那么它将按预期工作并且测试将通过。

但是,我在我的很多模型中都使用了这种模式,我不想只.set()用一个包装每个Ember.run()(转换也会触发相同的错误)。我也不想为了使测试工作而更改应用程序代码。

我还能做些什么来修复错误吗?

注意:我故意不在模型挂钩中返回承诺,否则 UI 将被阻塞,直到承诺解决。我希望立即转换到路线,以便我可以显示加载微调器。

0 投票
1 回答
618 浏览

javascript - Ember.js:卡在初始集成测试中

在 1.0 版本发布后,我正在探索 Ember,并认为它进展顺利,直到我尝试遵循本关于集成测试的教程。它写得很好而且很有指导意义,但我已经被困在调试设置测试几天了:/ Noob pains ...

这个要点显示了 qunit 上的测试和错误。我正在按照 tute 的设置进行操作,我在其他地方也看到过。

在 IRC 上有人指出这个 tute 使用 R5,而不是最新的 1.0 版本。他不知道此后余烬测试是否发生了变化,但这可能是罪魁祸首。

关于我可能做错了什么的任何想法?这一定是愚蠢的,我知道:)

(在 Rails 4 中使用 Ember)

更新

Márcio 的小提琴让我玩弄添加和删除东西,直到我复制了错误。结果我没有设置任何模板,测试也不喜欢那样,尽管应用程序加载时没有错误,并且 ember 检查器看到了路由等。

0 投票
2 回答
1337 浏览

ember.js - 集成测试 Ember:如何将 Ember.run 与 ember-auth 一起使用

尝试使用 QUnit 和 Teaspoon 运行测试。我有以下测试:

但是,当我运行测试时,我收到此错误:

我的理解是我的应用程序中有一些异步代码需要包装在 Ember.run 中,因为在测试期间运行循环被禁用。我正在使用 ember-auth,我相信以下代码是登录时发生异步的地方:

但是我不确定如何将它包装在 Ember.run 中,并且我迄今为止尝试过的东西都不起作用。如何将此代码的异步部分包装在 Ember.run 中以便我可以执行测试?

0 投票
0 回答
64 浏览

ember.js - 当 emberjs v1 发布时,ember 测试发生了哪些重大变化?

我有一套在 rc6 中运行良好的 qunit 集成测试。我升级到 1.0,现在测试给了我运行循环错误。从 rc6 到 v1 发生了哪些会破坏这些测试的变化?我无法从 ember 博客中发现任何内容。

0 投票
1 回答
362 浏览

ember.js - Ember 延迟任务阻止了测试助手承诺的解决

我正在开发一个基于 Ember 的应用程序,使用 QUnit 和 Teaspoon 进行前端集成测试。我目前正在尝试实现一个新功能,该功能涉及使用递归调用的常规服务器查询Ember.run.later。以更简化的形式,用 CoffeeScript 编写,这段代码是:

然后,我进行了一组不相关的测试,这些测试涉及单击页面的各种元素(使用 中的click帮助器Ember.Test),类似于以下内容:

我现在看到的是,当 Teaspoon 进行点击测试(later由于应用程序设置而导致呼叫挂起)时,它会正确执行点击,但承诺永远不会解决,实际的测试断言也没有经过测试。

我假设承诺没有解决,因为延迟later调用被认为是click助手等待完成的异步行为,除了当它完成时它只是设置另一个later调用 - 所以它永远不会被解决。

有没有解决的办法?

0 投票
1 回答
303 浏览

json - Ember-auth QUnit 测试每第二次运行都会失败

我最近设法让我的ember-auth 测试通过,但它还不完美,因为测试每两次都失败(或者如果有几个测试正在运行,那么关于身份验证的每第二次测试都会失败)。

我创建了一个小示例应用程序来演示失败。

您应该能够按照以下步骤重现故障:

如果测试通过,请刷新页面并查看失败并显示“无效 JSON 格式”。下次刷新时它会再次起作用。

0 投票
0 回答
242 浏览

ember.js - 黄瓜 this.Before() 钩子未执行(Yeoman 余烬生成器)

在我的 test/features/support/world.js

和我的测试/功能/step_definitions/first_steps

当我在被解雇之前不需要世界时。

  • 我的应用

  • .sass 缓存

  • .tmp
  • 应用程序
    1. bower_components
      • ember-mocha-适配器
  • 节点模块
  • 测试
  • features //我为 cucumberjs 功能添加了这个文件夹。
    1. step_definitions //我添加了
    1. 摩卡
    2. 柴.js
    3. 期望.js
  • 规格
0 投票
1 回答
478 浏览

ember.js - ember app kit:一些测试功能未定义

基于 ember 应用套件构建我的第一个 ember 应用。

我想在转换后测试当前路线 - 并在 ember 文档中找到我需要的东西 -currentRouteName辅助函数。currentURLcurrentPath

但是,如果我使用这些功能,我会得到一个"ReferencError: currentRouteName is not defined".

我偶然发现了这个拉取请求,我认为它具有相同事物的初始实现 - 但被关闭以支持将此功能添加到适当的 ember ......暂时,我从这个 PR 复制了代码,它确实得到了拿起并通过了我的测试。

问题:如何在测试中使用我的 ember.js 副本中定义的所有功能?visit这些路由辅助函数与和函数一起定义click,我的测试似乎没有问题。或者,我的测试是否从其他地方获取这些功能?