我无法使用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 bug?作为参考,下面是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
。如果要测试LOG_ACTIVE_GENERATION
,则需要手动定义它:
import Ember from 'ember'
IndexRoute = Ember.Route.extend();
export default IndexRoute
如果您真的只想依靠自动生成的代码,则没有理由对其进行单元测试,因为没有要测试的其他功能。
我认为,如果打开,则可以看到生成事件的时间。
如果您确实想测试自动生成的内容,请在可以使用路由器进行路由的验收测试中进行。
我的猜测是它生成了here。