ember错误:断言失败:fullName必须是正确的全名

时间:2018-04-09 08:23:37

标签: ember.js ember-qunit

使用Ember.js运行测试时出现以下错误:

  

承诺在“......”之前被拒绝:断言失败:fullName必须是a   正确的全名

此错误的含义是什么?

4 个答案:

答案 0 :(得分:3)

<强>原因

如果component:用于单元测试,并且第一个参数(组件名称)以moduleForComponent前缀开头,则抛出此错误。

如何解决

您应该检查作为单元测试参数编写的组件的名称。如果使用component:,则不应使用moduleFor前缀。但是,如果使用component:,则应使用moduleForComponent('my-component', 'unit: my-component', { //test specifications }); 前缀,如下例所示:

moduleFor('component:my-component', 'unit: my-component', {
  //test specifications
});

String str = "12a123";
char firstCharacter = (char) str.chars()
        .filter(c -> String.valueOf((char) c).matches("[a-zA-Z]"))
        .findFirst()
        .orElseThrow(() -> new Exception("No character exist"));//a

This twiddle演示了两个例子的用法。

答案 1 :(得分:1)

您还将看到此错误消息,其中包含错误的路由名称,例如:

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;
});

答案 2 :(得分:1)

如果您使用新的嵌套子文件夹尖括号语法:<Foo::Bar />

,也可能会遇到此错误。

确保您拥有ember-angle-bracket-invocation-polyfill的最新版本,至少为1.3.0

答案 3 :(得分:1)

使用一个冒号而不是2来分隔组件名称和子组件后,我也遇到了同样令人困惑的错误。

<Component:SubComponent />而不是<Component::SubComponent />