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

ember.js - 在对插件项目中的助手进行单元测试时遇到问题

https://github.com/stefanpenner/ember-cli/issues/2421

余烬-cli:1.2

我有一个样板插件项目,它有一个标题案例助手,如下所示:

我的助手app/helpers/title-case.js

我使用 ember-cli 为助手生成了测试

这是输出:

现在从 ember-cli 运行测试

收到以下错误:

更新

我尝试将以下内容更改为“虚拟”而不是自动生成的“样板”并删除了大括号。

它现在进一步进入测试方法,但在调用时失败titleCase(42)

更新#2

我能够让它工作,但它很难看,我需要访问该._rawFunction属性并更改导入语句的格式。

我仍然对为什么 ember-cli 生成的原始测试不起作用感到困惑。

0 投票
1 回答
662 浏览

testing - Ember QUnit 模块用于(测试)适配器检索存储

我正在为我的自定义 DS.RESTAdapter 编写测试,它使用我们自己的 SDK 作为传输器而不是 ajax 调用。现在,我想测试适配器 find、findAll、findQuery ... 需要我将 store 实例作为参数传递的函数。例如:

为了能够对此进行测试,我需要传递在 ember-qunit 的 moduleFor 中不可用的“store”参数(与 moduleForModel 不同,您可以在测试实例中通过 this.store 访问 store)。

还有其他方法可以访问当前的 store 实例吗?

谢谢。

编辑:

我通过为存储和类型创建模拟来解决这个问题。您可以通过以下方式创建商店实例:

和一个类型的模拟,就像一个具有测试所需属性的普通对象。

0 投票
1 回答
389 浏览

ember.js - Ember-cli 集成点击 - 类型错误 undefined is not a function

我有一个新的 ember-cli 应用程序,并且正在设置集成测试以单击页面上的按钮并显示模式窗口(或在单击按钮后检查它是否存在)。

这是集成测试:

一旦点击 click() 请求,测试就会失败:

我在网上看到的所有例子都有这个方法。绝对是点击,因为我把它拿出来了,所有结果在 QUnit 中都是绿色的。

这是正在相关路线上加载的模板:

作为对以下评论的回应(谢谢),showModal 操作源自 routes/application.js 文件,如下所示:

如果有人能告诉我我做错了什么或者为什么这个点击事件没有触发(或发现),我将非常感激。

非常感谢

0 投票
1 回答
493 浏览

ember.js - 在另一个 ember 组件中测试 Ember.easyForms 输入组件的模拟模型

我正在使用 ember-cli qunit 测试moduleForComponent。我在创建的 ember 组件中有以下选择元素。

使用. sites_store

我正在使用jsMockito来模拟store.

我将它作为测试中的参数传递给组件。

生成的 html 看起来像这样,似乎 siteMock 已呈现,但即使我在模拟上添加了适当的期望 optionLabelPath,也无法正常工作。optionValuPath

我已经siteMock在调试器中使用 getter 进行了测试,一切都按预期工作。我想我需要when对某些属性的另一个条件,siteMock但我不确定是什么。任何人都可以给我一些关于让这个工作的建议吗?

0 投票
2 回答
766 浏览

ember.js - 带有 {{link-to}} 助手的组件测试 Ember-CLI

我有我认为是 3 个非常简单的测试。

1) 检查组件渲染属性(Ember-CLI 自动生成此属性)

2)单击导航到“user.index”路由的类(它是{{link-to}})

3)单击导航到“brands.index”路线的类(它是{{link-to}})

当我在浏览器中单击它们时,我可以确认这些路线是可访问的,但是,测试失败了。尽管指定点击了“brands-link”,但“brands.index”测试仍然期待“users.index”。

任何帮助将不胜感激!

测试如下:

组件模板是:

0 投票
1 回答
132 浏览

javascript - 如何在 Ember-Cli 中对类方法进行单元测试

在我的应用程序中,我想在我的 GooglePlaceRetriever 服务上测试一个类方法。我知道在 Ember-Cli 中进行测试时,我可以使用 this.subject() 来获取服务的实例,但我不确定如何访问实际的 GooglePlaceRetriever 对象本身来测试我的类方法。

0 投票
1 回答
883 浏览

ember.js - ember 事件触发顺序在应用和测试中不同

我编写了这个简单的演示组件来演示一个问题。组件代码如下

当我运行它并单击focus-out元素时,这是日志的顺序。演示链接

  1. 单击焦点容器
  2. 从外部容器集中输出
  3. 焦点设置为按钮

现在,当我尝试使用以下代码为此编写验收测试时。

日志的顺序不同。链接到演示

  1. 单击焦点容器
  2. 焦点设置为按钮
  3. 点击测试后
  4. 从外部容器集中输出

focusOut日志在最后打印,而不是在点击后日志之前。我期待日志的顺序相同,最后只有一个额外的日志(点击后)。

我不确定这是错误还是我的代码有问题。

我在执行测试时还注意到另一个问题。如果我在测试运行时专注于 chrome 开发工具,则该focusOut事件根本不会触发。

对此的一些帮助非常感谢。

0 投票
1 回答
1273 浏览

javascript - ember-cli:moduleFor 失败并出现“尝试注册未知工厂”错误

我无法moduleFor使用 ember-cli 0.1.5 版在新版本中工作。

当使用文档的示例代码(并且没有对应用程序进行moduleFor其他更改)时,运行后出现以下错误ember test

由于除了在 /tests/unit/index-test.js 中添加示例示例之外,我没有对应用程序进行任何更改moduleFor,这似乎是一个 ember-cli 错误?作为参考,下面是moduleFor示例的代码:

0 投票
0 回答
238 浏览

javascript - Ember js QUnit 测试:带参数访问

我有打击设置

我正在尝试测试页面http://localhost:9000/#/orange/c07f234e-8f19-4c99-c6f1-208a7d6661bd

这是我的测试

无论如何在 qunit 的访问方法中传递参数

0 投票
2 回答
954 浏览

twitter-bootstrap - ember-cli 单元测试 - 控制器打开引导模式

尝试为我的 ember 控制器编写单元测试。它只是更改一个属性,然后打开一个引导模式。很难弄清楚如何测试模态是否实际打开。不确定这是否属于单元测试或集成测试。如果它不在我的单元测试中,那么以后似乎很难确定代码覆盖率。引导版本:3.3.1,ember-cli 版本 0.1.5,节点 0.10.33。这是我尝试无济于事的:

1.

没有断言错误

2.

andThen 没有定义

这是控制器:

关于如何测试这种东西的任何其他建议或最佳实践将不胜感激。

ps还尝试在点击之前添加这个:

根据某人的建议,但它不会禁用模态转换。