gpt4 book ai didi

unit-testing - Angular 2 RC6 : 'pattern-list' is not a known element

转载 作者:太空狗 更新时间:2023-10-29 17:22:59 26 4
gpt4 key购买 nike

简单地运行应用程序我没有收到任何错误并且工作正常,但是当我运行我的测试时我收到以下错误:

'pattern-list' is not a known element:
1. If 'pattern-list' is an Angular component, then verify that it is part of this module.
2. If 'pattern-list' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the '@NgModule.schema' of this component to suppress this message. ("
[ERROR ->]<pattern-list></pattern-list>

当我使用“npm-start”运行应用程序时,我首先遇到了这个问题,我解决了它,将所需的组件添加到声明部分的 app.module 中。但是现在当我想测试时,我得到了同样的错误,我不知道为什么。这是我的代码:

应用程序模块.ts

@NgModule({
imports: [ BrowserModule, FormsModule, HttpModule, ReactiveFormsModule ],
declarations: [ AppComponent, PatternListComponent, PatternDetailComponent, WidgetListComponent,
FormComponent, DefaultWidget, LabelComponent, CheckboxWidget ],
bootstrap: [ AppComponent ],
providers: [ WidgetService ]
})
export class AppModule { }

应用程序组件.ts

@Component({
selector: 'my-app',
template: `
<pattern-list></pattern-list>
`
})
export class AppComponent { }

模式.列表.组件:

@Component({
selector: 'pattern-list',
template: `
<div class="patterns">
<pattern-detail *ngFor="let p of patternDetails" [metadata]="p"
(selectPattern)="selectPattern(p)"></pattern-detail>
</div>
<div *ngIf="selectedPattern" class="widget-list">
<widget-list [pattern]="selectedPattern">
</widget-list>
</div>
`,
styleUrls: ['/css/styles.css']
})
export class PatternListComponent implements OnInit{
selectedPattern: PatternDetails;
constructor(private http: Http) {
}

patternDetails: PatternDetails[];

ngOnInit() {
this.getPatterns();
}

getPatterns() {
this.http.get('/app/assets/patternDetails.json')
.map((res:Response) => res.json() )
.subscribe(
data => { this.patternDetails = data.patternList; },
err => console.error('The problem is: ' + err),
() => console.log('done')
);
console.log(this.patternDetails);
}

selectPattern(pattern: PatternDetails) {
this.selectedPattern = pattern;
this.setSelectedProperty(pattern);
}

setSelectedProperty(selectedPattern: PatternDetails) {
for (var p in this.patternDetails) {
if (this.patternDetails[p] == selectedPattern) {
this.patternDetails[p].selected = true;
} else {
this.patternDetails[p].selected = false;
}
}
}
}

我的测试文件:app.component.spec.ts

describe('AppComponent with TCB', function () {
beforeEach(() => {
TestBed.configureTestingModule({declarations: [AppComponent]});
});
describe('asdfasdf', function () {
beforeEach(async(() => {
TestBed.compileComponents();
}));
it('should instantiate component', () => {
let fixture = TestBed.createComponent(AppComponent);
expect(fixture.componentInstance instanceof AppComponent).toBe(true, 'should create AppComponent');
});
});
});

我正在使用 webpack,我不确定这是否重要。

最佳答案

我觉得你需要

TestBed.configureTestingModule({imports: [AppModule]});

关于unit-testing - Angular 2 RC6 : 'pattern-list' is not a known element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39467740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com