MoJs的基本创建组件测试失败

时间:2018-09-07 14:19:57

标签: angular unit-testing jasmine karma-jasmine angular6

我有一个使用动画库Mojs的组件。由于MoJs元素,spec.ts文件开箱即用的创建组件测试失败。我不确定如何在spec.ts文件中提供此库,以便至少对该组件的此测试成功创建通过。

我遇到的错误是:'无法读取未定义的属性'CustomShape''

此CustomShape的实现如下:

    class paperOutlineTopCorner3 extends mojs.CustomShape {
     getShape () { return '<path d="123XYZ"/>'; }
    }

我当前的spec.ts文件:

import { async, ComponentFixture, TestBed } from '@angular/core/testing';

import { CallbackComponent } from './callback.component';
import { requiredTestModules } from '../testing/import.helpers';

describe('CallbackComponent', () => {
 let component: CallbackComponent;
 let fixture: ComponentFixture<CallbackComponent>;

beforeEach(async(() => {
 TestBed.configureTestingModule({
  declarations: [ CallbackComponent ],
  imports: [requiredTestModules]
})
.compileComponents();
}));

beforeEach(() => {
 fixture = TestBed.createComponent(CallbackComponent);
 component = fixture.componentInstance;
 fixture.detectChanges();
});

it('should create', () => {
 expect(component).toBeTruthy();
});
});

任何帮助/建议将不胜感激

1 个答案:

答案 0 :(得分:2)

首先,您必须定义mojs对象。 希望有一个库可以安装到node_modules文件夹中? 在node_modules文件夹中拥有mojs定义后,可以将其导入文件,只要在该导入中定义了mojs.CustomShape,您就应该会很好。

您也许可以做类似的事情

npm install mojs

然后将其导入,您可以尝试以下几种不同的方法:

我会要求:

const mojs = require('mojs');

或导入:

import * as mojs from 'mojs';

如果已经“键入”了mojs库,则更加容易。

您还能正确构建吗?但仅在测试时得到错误?通常表明,您需要将.module文件中的某些内容复制到.spec文件中。

希望有帮助