我一直在尝试为一些Angular组件设置测试,但由于我的所有组件都使用了 ng-lightning
,因此一直遇到问题,这会导致以下错误:
/angular-lightning-test/node_modules/ng-lightning/ng-lightning.js:1( {“Object . ”:function(module,exports,require,__ dirname,__ filename,global,jest){import from '@ angular / core'; SyntaxError:意外的令牌导入
我不确定应该是否需要,因为Jest可以在此项目中使用 import
为每个其他文件处理它 .
我正在使用 jest-preset-angular
来处理这些测试的设置 . 您可以看到它使用的配置here .
我创建了一个非常小的示例项目,您可以在其中看到此错误:
https://github.com/humantree/angular-lightning-test
组件就像这样简单:
@Component({
selector: 'badge',
template: '<ngl-badge>{{text}}</ngl-badge>'
}) export class BadgeComponent {
text = 'Test Badge';
}
并且测试就像这样简单(我意识到缺少实际测试,但错误仍然发生在此之前):
describe('BadgeComponent', () => {
let badge: BadgeComponent;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [BadgeComponent],
imports: [NglModule.forRoot()]
});
badge = TestBed.get(BadgeComponent).instance;
});
});
任何人都可以看到我可以添加到我的Jest配置(或其他任何)可以解决此错误的任何内容吗?
注意:对于它的 Value ,我也使用 mocha-webpack
在Mocha中运行这些测试,并且与该设置具有完全相同的问题 .
谢谢!
1 回答
请尝试以下方法:
1)安装以下软件包:babel-jest,babel-preset-env
2)在项目根目录下添加.babelrc文件 .
3)编辑你的jest.config.js文件,以便babel处理ng-lightning