我们需要在测试中获取router.js
中所有路径名称的列表。最好是较低级别的测试(单位/积分)。
上下文用例:我们拥有所有路由所需的元数据。这个测试是为了确保在添加新路由时添加了适当的元数据,而不是忘记了。
答案 0 :(得分:1)
这是我在验收测试中如何设法完成的。
这是我对此解决方案不喜欢的事情:
私有API虽然在ember-inspector中使用,但如果它在将来中断,我们应该能够引用它们在该回购中发生的任何变化。
import { module, test } from 'qunit';
import { setupApplicationTest } from 'ember-qunit';
module('Acceptance | route metadata test', hooks => {
setupApplicationTest(hooks);
test('we can get route names', function(assert) {
const router = this.owner.lookup('router:main');
router.setupRouter();
const routeNames = router._routerMicrolib.recognizer.names;
assert.ok(Object.keys(routeNames).length > 0);
});
});
测试仅断言我们有路由名称。对于原始用例,更改此代码以迭代routeNames
。
ember-cli: 3.5.0
node: 8.12.0
找到了呼叫setupRouter()
的需要