gpt4 book ai didi

javascript - ember-cli: moduleFor 失败并出现 "Attempting to register an unknown factory"错误

转载 作者:行者123 更新时间:2023-11-28 19:25:57 24 4
gpt4 key购买 nike

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

使用 documentation's example code 时对于 moduleFor (并且对应用程序没有其他更改),运行 ember test 后出现以下错误:

TypeError: Attempting to register an unknown factory: `route:index`
at Object.Container.register (http://localhost:4200/assets/vendor.js:14473:17)
at isolatedContainer (http://localhost:4200/assets/test-support.js:24:19)
at Object._callbacks.setup (http://localhost:4200/assets/test-support.js:150:23)
at Object.Test.setup (http://localhost:4200/assets/test-support.js:1063:31)
at http://localhost:4200/assets/test-support.js:1168:10
at process (http://localhost:4200/assets/test-support.js:887:24)
at http://localhost:4200/assets/test-support.js:476:5

由于除了在/tests/unit/index-test.js 添加示例 moduleFor 示例之外,我没有对应用程序进行任何更改,因此这看起来可能是一个 ember-cli漏洞?作为引用,下面是 moduleFor 示例的代码:

// my-app/tests/unit/index-test.js
import { test, moduleFor } from 'ember-qunit';

moduleFor('route:index', "Unit - IndexRoute", {
setup: function () {},
teardown: function () {}
});

test("it exists", function(){
ok(this.subject());
});

最佳答案

看起来路由是在路由到时自动生成的。但是,当像您一样使用 moduleFor() 运行单元测试时,除非您显式声明,否则不会有 IndexRoute 。如果您想要一个可以测试的 IndexRoute,则需要手动定义它:

import Ember from 'ember'

IndexRoute = Ember.Route.extend();

export default IndexRoute

如果您确实只想依赖自动生成的功能,则没有理由对其进行单元测试,因为没有其他功能可供测试。

我认为,如果您打开LOG_ACTIVE_GENERATION,那么您可以看到事物何时生成。

如果您确实想测试自动生成的测试,请在验收测试的背景下进行,此时您可以使用路由器进行路由。

我的猜测是它会生成 here .

关于javascript - ember-cli: moduleFor 失败并出现 "Attempting to register an unknown factory"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27879140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com