Ошибка: StaticInjectorError (DynamicTestModule) [Элемент -> Форма] - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь проверить свой ионный компонент c 3 с жасмином и кармой. Мой тест выглядит следующим образом, но проблема в том, что я не использую связанный с формой компонент или библиотеку, он настаивает на том, чтобы я не предоставлял форму внутри моего модуля тестирования. Я попытался отключить все остальные тесты, которые работают, как ожидалось, ничего не изменилось. Все мои исследования привели к одной цели: вам нужно импортировать этот модуль. Несмотря на то, что я не использую их, я также пытался импортировать FormsModule, ReactiveFormsModule тоже ничего не изменил. Заранее спасибо

    describe('Cart Item Component', () => {
    let component: CartItemComponent;
    let element: HTMLElement;
    let fixture: ComponentFixture<CartItemComponent>;
    const storeMock = {
        select() {
            return of({ name: 'Peter', registrationDate: '11/11/18' });
        }
    };
    beforeEach(async(() => {
        TestBed.configureTestingModule({
            // * here we configure our testing module with all the declarations,
            // * imports, and providers necessary to this component
            imports: [IonicModule, PipesModule],
            providers: [
                {
                    provide: Store,
                    useValue: storeMock
                }
            ],
            declarations: [CartItemComponent],
        }).compileComponents();
    }));


    beforeEach(() => {
        fixture = TestBed.createComponent(CartItemComponent);
        component = fixture.componentInstance; // The component instantiation 
        element = fixture.nativeElement;
    })

    it('Cart item component test', () => {

        expect(component).toBeTruthy();


    });
});

Вот сообщение об ошибке

Error: StaticInjectorError(DynamicTestModule)[Item -> Form]: 
  StaticInjectorError(Platform: core)[Item -> Form]: 
    NullInjectorError: No provider for Form!

Также здесь представлены версии моих пакетов

"ionic-angular": "^3.9.6",

   "@ionic/app-scripts": "3.2.3",
    "@types/jasmine": "^2.2.29",
    "angular2-template-loader": "^0.6.2",
    "file-loader": "^5.0.2",
    "html-loader": "^0.5.1",
    "image-webpack-loader": "^6.0.0",
    "ionic": "4.12.0",
    "istanbul-instrumenter-loader": "^3.0.0",
    "jasmine": "^2.5.3",
    "jasmine-spec-reporter": "^4.1.0",
    "karma": "^1.5.0",
    "karma-chrome-launcher": "^2.0.0",
    "karma-coverage-istanbul-reporter": "^1.3.0",
    "karma-jasmine": "^1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "karma-sourcemap-loader": "^0.3.7",
    "karma-webpack": "^2.0.3",
    "null-loader": "^0.1.1",
    "protractor": "^5.1.1",
    "ts-loader": "^3.0.3",
    "ts-node": "^8.5.4",
    "typescript": "~2.6.2"

Редактировать: Это модуль, который я объявляю свой CartItemComponent.

import { CommonModule } from '@angular/common';
import { IonicModule } from 'ionic-angular';
import { CartItemComponent } from './cart-item/cart-item';
import { PipesModule } from '../pipes/pipes.module';

@NgModule({
    declarations: [CartItemComponent],
    imports: [CommonModule, IonicModule, PipesModule],
    exports: [CartItemComponent],
    providers: []
})
export class CartComponentsModule { }
...