【问题标题】:Basic create component test failing with MoJsMoJ 的基本创建组件测试失败
【发布时间】:2018-09-07 14:19:56
【问题描述】:

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

我得到的错误是:'Cannot read property 'CustomShape' of undefined'

这个 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();
});
});

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

【问题讨论】:

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


    【解决方案1】:

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

    你也许可以做类似的事情

    npm install mojs
    

    然后要导入它,您可以尝试几种不同的方法:

    我会尝试要求:

    const mojs = require('mojs');
    

    或导入:

    import * as mojs from 'mojs';
    

    如果 mojs 库已经被“输入”,那就更容易了。

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

    希望对你有帮助

    【讨论】:

    • 男人!我的问题是导入线。我从'mo-js'导入了mojs;感谢您急需的帮助
    • 很高兴为您提供帮助!如果你不介意,我想你可能需要点击投票下的赏金按钮,否则积分可能会消失
    • 很抱歉。在我恢复理智的同时享受赏金。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多