0
コンポーネントの単体テストを実装しています。サービス、RouterModuleTesting、FormsModule HttpModuleを...私はDevExtremeウィジェットを使用してい角型ユニットテスト:失敗: 'DynamicTestModule'モジュールによってインポートされた予期しない値 'DxTemplateHost':@NgModuleアノテーションを追加します。
たいノート:
- は私が必要なすべてのものを輸入しました。
が、再び、私はいくつかの奇妙なエラーに立ち向かう:
エラーは、私がどこか@NgModuleのannotionを追加する必要があることを述べているが、それは明らかではありません。私のテストファイルは以下の通りです
:
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { CustomersListComponent } from './customers-list.component';
// DevExtreme Module
import {DxTemplateHost} from 'devextreme-angular';
// Router Testing Module
import {RouterTestingModule} from '@angular/router/testing';
// Services and HTTM Module
import { CustomerService } from './../customer.service';
import {HttpService} from '../../../shared/service/http.service';
import {SessionService} from '../../../shared/service/session.service';
import {HttpModule} from '@angular/http';
// Forms Module (ngModel)
import {FormsModule} from '@angular/forms';
// Schemas(datasource error)
import {CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';
describe('CustomerListComponent',() => {
let component: CustomersListComponent;
let fixture: ComponentFixture<CustomersListComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ CustomersListComponent ],
imports: [
HttpModule,
FormsModule,
DxTemplateHost,
RouterTestingModule,
],
providers: [ CustomerService , SessionService , HttpService ],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(CustomersListComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('Customer-list component should be well defined',() => {
expect(component).toBeDefined();
});
});
カルマを実行している場合は、テストfalisサービスを提供し、このスロー:
Failed: Unexpected value 'DxTemplateHost' imported by the module 'DynamicTestModule'. Please add a @NgModule annotation.
Error: Unexpected value 'DxTemplateHost' imported by the module 'DynamicTestModule'. Please add a @NgModule annotation.
at syntaxError (webpack:///~/@angular/compiler/@angular/compiler.es5.js:1690:21 <- src/test.ts:117724:34)
at webpack:///~/@angular/compiler/@angular/compiler.es5.js:15383:0 <- src/test.ts:131417:44
at Array.forEach (<anonymous>)
at CompileMetadataResolver.Array.concat.CompileMetadataResolver.getNgModuleMetadata (webpack:///~/@angular/compiler/@angular/compiler.es5.js:15366:0 <- src/test.ts:131400:49)
at JitCompiler.Array.concat.JitCompiler._loadModules (webpack:///~/@angular/compiler/@angular/compiler.es5.js:26796:25 <- src/test.ts:142830:70)
at JitCompiler.Array.concat.JitCompiler._compileModuleAndAllComponents (webpack:///~/@angular/compiler/@angular/compiler.es5.js:26782:0 <- src/test.ts:142816:36)
at JitCompiler.Array.concat.JitCompiler.compileModuleAndAllComponentsAsync (webpack:///~/@angular/compiler/@angular/compiler.es5.js:26714:0 <- src/test.ts:142748:37)
at TestingCompilerImpl.Array.concat.TestingCompilerImpl.compileModuleAndAllComponentsAsync (webpack:///~/@angular/compiler/@angular/compiler/testing.es5.js:478:0 <- src/test.ts:232778:31)
at TestBed.Array.concat.TestBed.compileComponents (webpack:///~/@angular/core/@angular/core/testing.es5.js:739:0 <- src/test.ts:40380:31)
at Function.Array.concat.TestBed.compileComponents (webpack:///~/@angular/core/@angular/core/testing.es5.js:622:45 <- src/test.ts:40263:67)
提案を?
は、なぜあなたは 'imports'配列に' DxTemplateHost'を含めるしようとしていますか?これは '@ NgModule'ではなく、むしろ一般的なクラスです。私たちは '@ NgModule'デコレータで飾られたクラスだけをインポートできます。 – yurzui
@yurzui:私はDXテンプレートの構文を使用することを許可していませんでした - > 'dxTemplateOf'にはバインドできません。 'div'、代わりにどうすればいいですか? – firasKoubaa