问题标签 [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.
javascript - 在 Ember 集成测试期间调试呈现的 HTML 和代码
我想在一页中呈现我的组件测试,这样我就可以看到我在某些方法中插入的调试。
出于某种原因,我的测试似乎没有正确加载数据,我想看看它正在加载什么。
不幸的是,QUnit 只显示我放入的内容asserts
,我想知道是否有办法在一个页面中查看我的测试,以便我可以看到控制台日志。
这是测试的骨架:
编辑:我想出了什么问题只使用assert.equal()
。它缺少一个$()
(jQuery 函数)。例子:
看到渲染的组件仍然很棒,而不是玩assert.equal()
javascript - Ember - 无法在测试中创建助手
我正在尝试为我的测试创建一个助手以模拟模型。
但是,我收到以下错误:
: makeInventoryObjects 未定义
我的测试助手:
我的助手中的启动应用程序包含application.injectTestHelpers();
失败的测试:
每当我添加导入的注释时,我都会收到此错误:
: _frontendTestsHelpersMakeInventoryObjects["default"] 不是函数
ember.js - 2.10 中的 Ember 组件创建错误
当我在 mixin 的单元测试中执行 Ember.Component.Create() 时,我得到了这个错误。我正在将 ember 从 1.13 升级到 2.10,此测试在 1.13 中运行良好,但在 2.10 中出现此错误。看起来在 2.10 ember 组件初始化需要一个应用程序实例。
我尝试过的几件事:
在 setup 和 destroy 中启动 App(),类似于集成测试
要覆盖 init 但 init 总是需要调用 _super()
试图在创建应用程序的集成测试环境中执行
unit-testing - 如何对 ember 控制器进行单元测试
我在 ember 控制器中定义了一个动作,它调用了作为控制器一部分的 2 个单独的函数。我想在单元测试中模拟这些函数,以确认操作方法是否调用了正确的函数。
我的控制器如下所示:
实际上,控制器可以工作,但是在单元测试中,functionA 和 functionB 都是未定义的。我试图登录this
到控制台,但找不到 functionA 和 functionB 的位置,所以我无法正确模拟它们。我希望它们位于动作旁边的对象的顶层,但我只找到_actions
了actionMethod
正确定义的。
我的单元测试如下所示
有人对我如何在测试环境中替换这些功能有任何想法吗?或者,是否有更好的方法来测试此功能或设置我的控制器?
- 编辑错字:this.subject to this.subject()
javascript - Ember.js 组件集成测试:如何使用全局注入和嵌套组件?
场景:我想使用真实的服务集成测试组件my-service
A。我有一个初始化程序,它将服务全局注入所有组件:application.inject('component', 'myService', 'service:my-service');
. 组件 A 在其模板中使用组件 B,并且它们都myService
在其模板中使用。
如何重新创建全局注入?没有完整的应用程序,所以我无法导入和运行真正的初始化程序,因为我没有所需的参数。this.inject.service
不起作用,因为它将其注入测试上下文,而不是全局应用程序上下文。
我可以更改所有组件的模板以将服务一直链接下来:{{b-component myService=myService}}
,然后
但这是最后的手段。我还可以摆脱全局注入并手动注入每个组件。这也是最后的手段。
我已经在https://github.com/emberjs/ember.js/issues/12277找到了有关此问题的讨论。它几乎已实现,但随后因大测试统一而关闭https://github.com/emberjs/rfcs/pull/119。在我们等待大测试统一的同时,现在有什么解决方案吗?
qunit - Ember qunit 测试被调用了两次
我最近将“ember-cli”升级到“2.10.0”,将“ember-cli-qunit”升级到“3.0.1”,但每个测试模块都运行了两次。但是,当我在 jsbin 中尝试代码时,我无法重新创建问题。我的测试看起来像:
我可以看到我的 quint 版本是 2.1.1,jquery 版本是 1.11.3。
我的 Index.html 文件如下所示;
ember.js - Ember 验收测试 - 异步副作用错误
尝试在 Ember 中运行验收测试:
偶尔(并且看似随机)会产生错误:
“全局错误:错误:断言失败:您已打开测试模式,这禁用了运行循环的自动运行。您需要在运行中包装任何具有异步副作用的代码......”
我能够得到一个工作版本:
但是,如果我包含使用相同路由的第二个测试(对于不成功的登录),其中一个几乎总是以上面列出的错误结束。
我想知道我对运行循环、Ember.run 以及如何使用异步行为进行测试有什么不了解的地方。任何对良好资源的帮助或指示将不胜感激!
ember.js - Ember - 在测试中获取组件中元素的动态输入值
所以我有一个简单的组件,如下所示:
我有两个这样的测试:
第一个测试通过,但第二个测试失败。this.$('.my-input').attr('value')
似乎是undefined
。为什么?我怎样才能使这个测试通过?
ember.js - 点击事件后 Ember 集成测试失败
我有这个集成测试:
但断言失败,组件模板如下所示:
和组件代码:
我正在更新操作中的chord
模型,changeChord()
如果我在浏览器中进行测试,它确实可以工作,但集成测试失败。那么,模型中的这种变化是否必须与模板同步呈现?我尝试在测试中使用 wait() 但这并没有什么不同。那么我应该如何测试呢?