ember Ошибка: утверждение не выполнено: полное имя должно быть правильным полным именем
Я получил следующую ошибку при выполнении теста с Ember.js:
Обещание отклонено перед "...": утверждение не выполнено: полное имя должно быть правильным полным именем
В чем смысл этой ошибки?
2 ответа
причина
Эта ошибка выдается, если moduleForComponent
используется для модульного теста, а первый параметр (имя компонента) запускается с component:
префикс.
Как решить
Вы должны проверить имя компонента, которое записано в качестве параметра для модульного теста. Если moduleForComponent
используется, то component:
Префикс не должен использоваться. Однако если moduleFor
используется, то component:
Префикс должен быть использован, как показано ниже:
moduleForComponent('my-component', 'unit: my-component', {
//test specifications
});
или же
moduleFor('component:my-component', 'unit: my-component', {
//test specifications
});
Этот пример демонстрирует использование обоих примеров.
Вы также можете столкнуться с этой ошибкой, если используете новый синтаксис угловой скобки вложенной вложенной папки: <Foo::Bar />
Убедитесь, что у вас установлена последняя версия https://github.com/rwjblue/ember-angle-bracket-invocation-polyfill, не ниже 1.3.0.
Вы также увидите это ужасное сообщение с искаженным названием маршрута, например:
Router.map(function () {
this.route('mock-test/:accountId/:companyId');
return null;
});
где вы перепутали название маршрута с сегментом пути. Исправьте это так:
Router.map(function () {
this.route('mock-test', {
path: 'mock-test/:accountId/:companyId',
});
return null;
});
У меня такая же сбивающая с толку ошибка после использования одного двоеточия вместо двух для разделения имени компонента и подкомпонента.
<Component:SubComponent />
вместо того <Component::SubComponent />