我无法使用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

08-19 08:53