问题标签 [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.
ember.js - 在验收测试中等待基础模式对话框
在验收测试期间,为了模拟用户交互,应单击基础模态对话框上的按钮:
但这不起作用,因为执行代码后会出现对话框-
我也尝试将点击包装在 Ember.run.scheduleOnce('afterRender', this, function(){ ... }}
- 也没有成功。
unit-testing - Ember 控制器上的单元测试计算属性
我的controllers/cart.js中的代码:
这个计算属性循环遍历模型中的所有元素,添加subTotal
属性的所有值,返回一个cart total
.
购物车-test.js
测试失败了,TypeError: Cannot read property 'reduce' of null
因为它显然没有要循环的模型。
如何模拟cartTotal
计算属性的依赖关系以使测试通过?
谢谢!
ember.js - 如何将使用 ObjectProxy 的 Ember 单元测试转换为集成测试?
在升级到 Ember CLI 1.13.1 之前,所有组件都生成了一个单元测试,如果我的组件依赖于一个属性,我可能会编写如下内容:
这将通过/渲染一切正常。
我现在正在为此编写一个集成测试,如下所示:
我遇到的问题是渲染错误Cannot read property 'forEach' of undefined
,部分模板的{{each}}
供应商价格过高。如果我在 {{each}} 之前的模板中放置一个 {{log supplier}},那么我会看到undefined
. 所以我的猜测是在渲染调用之前设置没有发生?我需要做些什么才能使其正常工作,我不需要任何回调或在单元测试表单中等待,是吗?
ember.js - 验收测试不会重置
我有一些测试组件的验收测试。如果我分别运行每个测试,它们就可以通过。但是,当我一起运行测试时,它们会失败,因为它们保留了以前测试的值。
这是我的代码:
过滤测试.js
ps-filter/component.js
状态/controller.js
状态/模板.hbs
从我收集的信息来看,它似乎将 设置为上一个测试initialValues
的filterValues
左侧。但是,我认为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
钩子不应该重置应用程序吗?
javascript - 需要模型的 Ember 测试初始化程序
我有一个初始化程序,它从脚本标记中页面上的 JSON 对象向应用程序注册一些模块。在应用程序中工作正常,但测试失败,因为它找不到预期的模型。
初始化程序/bootstrap-payload.js
测试/初始化程序/bootstrap-payload-test.js
tests/index.html 在其中包含一个示例BOOTSTRAP_DATA
变量,其中包含一个模型,该模型总是期望在那里,称为channel
. 运行时ember test
出现以下错误。
在这种情况下,如何注入此依赖项该needs
字段似乎不起作用。或者无论如何使初始化程序更可测试。
javascript - 测试时的 Ember 错误:您需要在运行中包装任何具有异步副作用的代码
我们已经有一个应用程序正在为 CI 添加测试用例。
我们有一个小代码尝试登录过程并检查可能的登录状态(如成功、失败、无效帐户帐户锁定等)后会发生什么。
所以我尝试了以下代码。
它在控制台中给出以下错误。
执行单击后会发生此错误。当单击对服务器进行 AJAX 调用并在其响应时进行路由转换。
对于成功登录的情况,我想检查我的路线是否因此错误而无法/login
更改。/
请建议。
谢谢
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
。
有没有人尝试browserstack
与ember-cli
项目集成然后请指导我。
ember.js - 如何为集成测试配置 Ember 2.0
我使用 ember 1.13.5 创建了一个示例 ember-cli 项目。我创建了一个组件和一个虚拟集成测试。它运行得很好。
然后,我在 bower.json 文件中将 ember 版本更新为 2.0.0-beta.3,运行测试并立即收到错误消息:
- TypeError:“未定义”不是对象(评估“Ember.View.extend”)
- TypeError:“未定义”不是对象(评估“this.cache.subject”)
在我的项目中几乎没有任何其他习惯。我刚刚生成它。我意识到它是测试版软件,还没有为黄金时段做好准备,但如果有人知道一个简单的配置更改,我将不胜感激。我正在使用 ember-cli 版本 1.13.1。
ember.js - 使用 ember qunit 测试非 ember 数据模型
我ember-qunit
在ember-cli
应用程序中使用。我的应用程序仍未ember-data
用于模型。
moduleForModel
助手根本不起作用。是否需要将模型扩展DS.Model
为使用ember-qunit
?
ember.js - 灰烬 JS | Qunit - Phantom JS Set 在已经销毁的对象上调用
我遇到了这个奇怪的问题,当我运行单个模块时,Ember Qunit 测试成功通过。但是当我运行所有模块测试用例时它们会失败。
失败错误看起来像这样
set 调用已经销毁的对象。
有人可以指出我正确的方向来解决这个问题吗?