问题标签 [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 回答
75 浏览

ember.js - 用于验收测试的 Bower 依赖项

我正在尝试开始在 ember-app-kit 中进行验收测试。当我运行 grunt 测试时,虽然我得到 AuthenticatedRouteMixin 未定义(来自 ember-simple-auth)。当我使用 grunt 服务器运行应用程序时,这不是问题,所以我认为我的 bower 依赖项没有被加载以进行验收测试。我需要设置什么来为测试加载凉亭依赖项吗?

0 投票
4 回答
935 浏览

javascript - Ember.js ArrayController 错误

我正在尝试测试以下示例 Ember.js 代码,但我总是在 Chrome 浏览器控制台中显示以下错误:

代码:

我正在使用 Ember-1.3.2.js

有人可以告诉我我在这里缺少什么吗?以及如何解决这个错误?

按照@kingpin2k 的建议将 .create 更改为 .extend 后的新错误消息

TypeError: Object function () { if (!wasApplied) { Class.proto(); // 准备原型... } o_defineProperty(this, GUID_KEY, undefinedDescriptor); o_defineProperty(this, '_super', undefinedDescriptor); var m = meta(this), proto = m.proto; m.proto = 这个;if (initMixins) { // 本地捕获,这样我们就可以清除关闭的变量 var mixins = initMixins; 初始化混合 = 空;this.reopen.apply(this, mixins); } if (initProperties) { // 本地捕获,以便我们可以清除关闭的变量 var props = initProperties; 初始化属性=空;var concatenatedProperties = this.concatenatedProperties; for (var i = 0, l = props.length; i < l; i++) { var properties = props[i]; Ember.assert("Ember.Object.create 不再支持混入其他定义,请改用 createWithMixins。", ! (Ember.Mixin 的属性实例));if (typeof properties !== 'object' && properties !== undefined) { throw new Ember.Error("Ember.Object.create 只接受对象。"); } if (!properties) { 继续;} var keyNames = Ember.keys(properties); for (var j = 0, ll = keyNames.length; j < ll; j++) { var keyName = keyNames[j]; if (!properties.hasOwnProperty(keyName)) { 继续;} var 值 = 属性 [keyName],IS_BINDING = Ember.IS_BINDING;if (IS_BINDING.test(keyName)) { var bindings = m.bindings; if (!bindings) { bindings = m.bindings = {}; } else if (!m.hasOwnProperty('bindings')) { bindings = m.bindings = o_create(m.bindings); } 绑定[键名] = 值;} var desc = m.descs[keyName]; Ember.assert("Ember.Object.create 不再支持定义计算属性。", ! (Ember.ComputedProperty 的值实例));Ember.assert("Ember.Object.create 不再支持定义调用_super的方法。", !(typeof value === 'function' && value.toString().indexOf('._super') !== -1 )); Ember.assert("actions价值); // 设置强制设置器 } else { this[keyName] = value; } } } } } 完成部分(这个,米);this.init.apply(this, arguments); m.proto = 原型;完成链(这个);发送事件(这个,“初始化”);没有方法'get'

0 投票
1 回答
1005 浏览

ember.js - Can't resolve RSVP.Promise in QUnit integration test

I am writing an integration test for my Ember.js application in QUnit. Before a test, I want to seed some test data by issuing HTTP requests to a dedicated testing API. I use jQuery.post to issue POST requests and I use Ember.RSVP.Promise.cast to turn the jQuery promise into an RSVP promise. However, it never seems to resolve. In the code below, it just hangs. The string "STARTING" is printed but neither "DONE" nor "FAIL" is printed.

I also tried creating a new RSVP Promise as described in the "Advanced usage" section of http://emberjs.com/api/classes/Ember.RSVP.Promise.html, to no avail (it also hanged). If I don't wrap the jQuery promise into an RSVP Promise, it does reach either the "DONE" or "FAIL".

Why doesn't the RSVP Promise resolve?

0 投票
1 回答
586 浏览

ember.js - 在 IE-8 中进行测试时,观察者未在复选框选中的属性上触发

嗨,我亲爱的社区成员。在测试处理复选框单击事件时,我仅在 IE 8 中遇到问题。这是一个 JSBIN 链接,您可以在其中看到问题:http: //jsbin.com/jicijilo/1/

抱歉,我不得不在其中注入整个 mocha 适配器和 expectjs 源代码,因为显然只有 mozilla 可以处理像这些https://raw.githubusercontent.com/teddyzeenny/ember-mocha-adapter/master/adapter.js这样的原始源代码

测试本身非常简单,我有一个问题列表,每个问题都有一个布尔值的活动属性。我有一个标题复选框,可以切换所有问题的“活动”属性。然而,在 ie8 中,当我们使用 click helper 点击复选框时,观察者似乎没有被触发!下面是测试的核心代码:

测试在 ie8 中失败,但如果您手动单击复选框,观察者会被触发。您的帮助将不胜感激。谢谢,迪

0 投票
0 回答
78 浏览

javascript - 升级 Ember v.1.5 后未加载应用程序

我已经从 v1.4 更新了我的 ember v1.5。之后我的应用程序没有被渲染。在我的应用程序中,我在很多地方都使用了 _super()。有没有问题。我也在使用 require.js 。

我通过app调试,发现它触发了indexRoute。但在那之后什么都没有发生。下面是我的路线结构,

路线地图:

0 投票
1 回答
1066 浏览

ember.js - Ember.js - 测试路由器 didTransition 事件

我正在尝试测试重新打开 Ember 路由器并向didTransition事件添加侦听器的自定义 mixin。这是代码:

然后,测试(在 Coffeescript 中):

显然,这是行不通的,因为一旦路由器完成转换,就必须有办法进行断言。你会怎么做?

请注意,这不是集成测试,而是 mixin 的单元测试。

0 投票
1 回答
554 浏览

ember.js - transitionToRoute 导致 ember 测试挂起

使用 ember.js v 1.5.1。

我使用 karma 和 qunit 来测试我的 ember 应用程序。在我的几个测试中,我遇到以下情况:1.用户单击->2.对我们的服务器进行异步调用->然后 3.通过控制器中的“this.transitionToRoute('someroute')”进行转换. 当它在测试时遇到 transitionToRoute 方法时,业力挂起。尝试用 ember.run 调用来包装它,但似乎没有帮助。

当我注释掉转换调用时,它会运行,并相应地失败。

示例测试代码,它挂起并且没有达到相等的调用

控制器代码

测试用例运行

测试用例挂起

任何人都知道它为什么挂起?/我能做些什么来让它继续下去?

0 投票
0 回答
810 浏览

ember.js - 在测试期间处理“后端拒绝提交,因为它无效”

我有一个使用 Ember Data 的 ember-cli 应用程序,我正在尝试编写一个验收测试,涵盖提交表单以提出问题的失败案例。在测试中,我使用Pretender 模拟响应以返回一个错误对象,然后断言向用户显示一条消息,让他们知道他们的提交失败。

我编写的实际断言,它检查要显示的错误消息,正在通过。问题是我也收到了Error: The backend rejected the commit because it was invalid: {title: can't be blank, body: can't be blank}.

有没有办法在测试期间消除这个错误?我是在错误地接近这个吗?在这种情况下,这实际上并不是一个错误。后端应该拒绝提交,因为这就是我想要涵盖的内容。

这是测试:

And the relevant action that's being triggered:

And the failure that's popping up:

Test Failure

0 投票
0 回答
338 浏览

ember.js - 未捕获的 ReferenceError:未定义 moduleFor

Ember-cli quint -> An Integration test: global failure (1, 0, 1)Rerun

0 投票
1 回答
45 浏览

ember.js - 如何新建一个“需要”应用程序的控制器?

在添加我的“需求”之前,控制器看起来像这样

这让我可以像这样编写非常简单的单元测试

但是在我像这样添加了一个“需要”块之后......

“新的”不起作用,QUnit / ember 会抛出这样的错误

“请确保此控制器已使用容器实例化”

不用说“拉入/使用 ember-qunit”,我在这里还有哪些其他选择?我可以简单地猛击“存根”来满足容器要求吗?