2017-08-04 9 views
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) 
    

    提案を?

  • +0

    は、なぜあなたは 'imports'配列に' DxTemplateHost'を含めるしようとしていますか?これは '@ NgModule'ではなく、むしろ一般的なクラスです。私たちは '@ NgModule'デコレータで飾られたクラスだけをインポートできます。 – yurzui

    +0

    @yurzui:私はDXテンプレートの構文を使用することを許可していませんでした - > 'dxTemplateOf'にはバインドできません。 'div'、代わりにどうすればいいですか? – firasKoubaa

    答えて

    0

    私は、モジュール全体のDevExtremeをインポートして、それを解決:

    imports:[DevExtremeModule] 
    
    関連する問題