问题标签 [ember-qunit]

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 投票
0 回答
234 浏览

ember.js - 在验收测试中等待基础模式对话框

在验收测试期间,为了模拟用户交互,应单击基础模态对话框上的按钮:

但这不起作用,因为执行代码后会出现对话框-

我也尝试将点击包装在 Ember.run.scheduleOnce('afterRender', this, function(){ ... }} - 也没有成功。

0 投票
2 回答
2455 浏览

unit-testing - Ember 控制器上的单元测试计算属性

我的controllers/cart.js中的代码:

这个计算属性循环遍历模型中的所有元素,添加subTotal属性的所有值,返回一个cart total.

购物车-test.js

测试失败了,TypeError: Cannot read property 'reduce' of null因为它显然没有要循环的模型。

如何模拟cartTotal计算属性的依赖关系以使测试通过?

谢谢!

0 投票
1 回答
82 浏览

ember.js - 如何将使用 ObjectProxy 的 Ember 单元测试转换为集成测试?

在升级到 Ember CLI 1.13.1 之前,所有组件都生成了一个单元测试,如果我的组件依赖于一个属性,我可能会编写如下内容:

这将通过/渲染一切正常。

我现在正在为此编写一个集成测试,如下所示:

我遇到的问题是渲染错误Cannot read property 'forEach' of undefined,部分模板的{{each}}供应商价格过高。如果我在 {{each}} 之前的模板中放置一个 {{log supplier}},那么我会看到undefined. 所以我的猜测是在渲染调用之前设置没有发生?我需要做些什么才能使其正常工作,我不需要任何回调或在单元测试表单中等待,是吗?

0 投票
0 回答
367 浏览

ember.js - 验收测试不会重置

我有一些测试组件的验收测试。如果我分别运行每个测试,它们就可以通过。但是,当我一起运行测试时,它们会失败,因为它们保留了以前测试的值。

这是我的代码:

过滤测试.js

ps-filter/component.js

状态/controller.js

状态/模板.hbs

从我收集的信息来看,它似乎将 设置为上一个测试initialValuesfilterValues左侧。但是,我认为afterEach应该将其重置为原始状态。是否有理由不将其重置为控制器中的值?

请注意,当我在开发中运行该组件时,它可以正常工作。

Ember 检查器中列出的 Ember 版本:

我正在运行 Ember CLI 0.2.7

编辑

我认为这根本不是问题,但这是我的伪装者设置:

测试/帮助者/setup-pretender.js

当我运行测试时,它失败了,因为它将值重置为上一个测试中的值。例如,当我运行 时'filter values can be cleared'.filter-id输入具有与 相同的.filter-id'only saved filter can be edited。如果我将值更改'only saved filters can be edited''',则'filter values can be cleared'测试通过。

基本上,组件initialValues在首次插入元素时设置属性。它被设置为属性的副本filterValues,所以它应该被设置为控制器的filterValues属性,并且不应该改变。但是,修改后的属性似乎filterValues被转移到下一个测试,这意味着它initialValues在重新渲染时设置为该修改后的属性。因此,测试重新呈现模板,但在控制器和组件中保留修改后的值。

我可以通过在控制器中创建一个initialValues属性并将其传递给组件来使测试通过,但这意味着在控制器中具有重复的属性(因为filterValues并且initialValues将具有相同的值)。

我可以修改组件中的用户记录,但我认为我们应该只修改控制器或路由器中的记录。此外,afterEach钩子不应该重置应用程序吗?

0 投票
1 回答
544 浏览

javascript - 需要模型的 Ember 测试初始化​​程序

我有一个初始化程序,它从脚本标记中页面上的 JSON 对象向应用程序注册一些模块。在应用程序中工作正常,但测试失败,因为它找不到预期的模型。

初始化程序/bootstrap-payload.js

测试/初始化程序/bootstrap-payload-test.js

tests/index.html 在其中包含一个示例BOOTSTRAP_DATA变量,其中包含一个模型,该模型总是期望在那里,称为channel. 运行时ember test出现以下错误。

在这种情况下,如何注入此依赖项该needs字段似乎不起作用。或者无论如何使初始化程序更可测试。

0 投票
1 回答
4048 浏览

javascript - 测试时的 Ember 错误:您需要在运行中包装任何具有异步副作用的代码

我们已经有一个应用程序正在为 CI 添加测试用例。

我们有一个小代码尝试登录过程并检查可能的登录状态(如成功、失败、无效帐户帐户锁定等)后会发生什么。

所以我尝试了以下代码。

它在控制台中给出以下错误。

执行单击后会发生此错误。当单击对服务器进行 AJAX 调用并在其响应时进行路由转换。

对于成功登录的情况,我想检查我的路线是否因此错误而无法/login更改。/

请建议。

谢谢

0 投票
0 回答
252 浏览

ember.js - Browserstack-runner 测试因 ember-qunit 测试而超时

我有一个ember-cli项目,所有测试都是使用ember-qunit. 我正在使用browserstack-runner在Browserstack上运行测试。

browserstack-runner 为我正在使用的 qunit 提供插件。下面是我的browserstack.json

测试在 browserstack 上正确运行。唯一的问题是,即使在所有测试都运行(通过)之后,也没有任何活动,并且在指定值(120 秒)之后出现超时错误。我无法理解为什么会这样。我猜它与专门为qunit而不是为而不是专门编写的插件有关ember-qunit,它是一个包装器 arount qunit

有没有人尝试browserstackember-cli项目集成然后请指导我。

0 投票
1 回答
290 浏览

ember.js - 如何为集成测试配置 Ember 2.0

我使用 ember 1.13.5 创建了一个示例 ember-cli 项目。我创建了一个组件和一个虚拟集成测试。它运行得很好。

然后,我在 bower.json 文件中将 ember 版本更新为 2.0.0-beta.3,运行测试并立即收到错误消息:

  1. TypeError:“未定义”不是对象(评估“Ember.View.extend”)
  2. TypeError:“未定义”不是对象(评估“this.cache.subject”)

在我的项目中几乎没有任何其他习惯。我刚刚生成它。我意识到它是测试版软件,还没有为黄金时段做好准备,但如果有人知道一个简单的配置更改,我将不胜感激。我正在使用 ember-cli 版本 1.13.1。

0 投票
1 回答
176 浏览

ember.js - 使用 ember qunit 测试非 ember 数据模型

ember-qunitember-cli应用程序中使用。我的应用程序仍未ember-data用于模型。

moduleForModel助手根本不起作用。是否需要将模型扩展DS.Model为使用ember-qunit

0 投票
0 回答
61 浏览

ember.js - 灰烬 JS | Qunit - Phantom JS Set 在已经销毁的对象上调用

我遇到了这个奇怪的问题,当我运行单个模块时,Ember Qunit 测试成功通过。但是当我运行所有模块测试用例时它们会失败。

失败错误看起来像这样

set 调用已经销毁的对象。

有人可以指出我正确的方向来解决这个问题吗?