首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角2误差和茉莉花“注入误差误差”

角2误差和茉莉花“注入误差误差”
EN

Stack Overflow用户
提问于 2017-05-04 18:45:20
回答 1查看 559关注 0票数 0

我正试图用webpack和Karma进行角质2测试,但是我得到了一个错误:

代码语言:javascript
复制
Chrome 57.0.2987 (Windows 7 0.0.0) HeaderBarComponent should have a defined component FAILED
    Error
        at injectionError (webpack:///~/@angular/core/@angular/core.es5.js:1231:21 <- test/index.js:1558:86) [angular]
        at noProviderError (webpack:///~/@angular/core/@angular/core.es5.js:1269:0 <- test/index.js:1596:12) [angular]
        at ReflectiveInjector_._throwOrNull (webpack:///~/@angular/core/@angular/core.es5.js:2770:0 <- test/index.js:3097:19) [angular]
        at ReflectiveInjector_._getByKeyDefault (webpack:///~/@angular/core/@angular/core.es5.js:2809:0 <- test/index.js:3136:25) [angular]
        at ReflectiveInjector_._getByKey (webpack:///~/@angular/core/@angular/core.es5.js:2741:0 <- test/index.js:3068:25) [angular]
        at ReflectiveInjector_.get (webpack:///~/@angular/core/@angular/core.es5.js:2610:0 <- test/index.js:2937:21) [angular]
        at DynamicTestModuleInjector.NgModuleInjector.get (webpack:///~/@angular/core/@angular/core.es5.js:3557:0 <- test/index.js:3884:52) [angular]
        at resolveDep (webpack:///~/@angular/core/@angular/core.es5.js:10930:0 <- test/index.js:11257:45) [angular]
        at createClass (webpack:///~/@angular/core/@angular/core.es5.js:10791:0 <- test/index.js:11118:91) [angular]
        at createDirectiveInstance (webpack:///~/@angular/core/@angular/core.es5.js:10627:21 <- test/index.js:10954:37) [angular]
        at createViewNodes (webpack:///~/@angular/core/@angular/core.es5.js:11977:33 <- test/index.js:12304:49) [angular]
        at createRootView (webpack:///~/@angular/core/@angular/core.es5.js:11882:0 <- test/index.js:12209:5) [angular]
        at callWithDebugContext (webpack:///~/@angular/core/@angular/core.es5.js:13013:25 <- test/index.js:13340:42) [angular]
        at Object.debugCreateRootView [as createRootView] (webpack:///~/@angular/core/@angular/core.es5.js:12474:0 <- test/index.js:12801:12) [angular]
Chrome 57.0.2987 (Windows 7 0.0.0): Executed 1 of 1 (1 FAILED) ERROR (0.949 secs / 0.531 secs)

header-bar.spec.ts:

代码语言:javascript
复制
import { TestBed, async, inject } from '@angular/core/testing';
import { RouterModule, Router} from '@angular/router';
import { FlexLayoutModule } from '@angular/flex-layout';
import { MaterialModule } from '@angular/material';

import { HeaderBarComponent } from '../../../src/app/components/layout/header-bar/header-bar.ts';

describe('HeaderBarComponent', () => {

var component;

beforeEach(() => {
    TestBed.configureTestingModule({
        imports: [RouterModule, MaterialModule, FlexLayoutModule],
        declarations: [HeaderBarComponent]
    });

    **// error occurs on this line**
    const fixture = TestBed.createComponent(HeaderBarComponent);
    component = fixture.componentInstance;
});

it('should have a defined component', () => {
    expect(component).toBeDefined();
});

});

如果我注释掉"TestBed.createComponent(HeaderBarComponent)“,测试将运行,但我需要这一行才能测试组件,不是吗?看上去很多有角的医生都在用那条线。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-04 19:50:42

看起来你没有编写额外的函数:

代码语言:javascript
复制
...
beforeEach(async(() => {
   TestBed.configureTestingModule({
 //Mainly you don't need RouterModule here
       imports: [MaterialModule, FlexLayoutModule],
       declarations: [HeaderBarComponent]
   })
//Do not forget to compile the component
     .compileComponents();

const fixture = TestBed.createComponent(HeaderBarComponent);
component = fixture.componentInstance;
//Do not forget to call that method when u need  
// to trigger change detection
fixture.detectChanges();
}));
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43790576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档