Uncaught TypeError: Невозможно прочитать свойство 'команды' с неопределенным броском - Карма - PullRequest
1 голос
/ 29 мая 2019

Я сталкиваюсь с этой проблемой, когда запускаю ng test.Он прекрасно компилируется, а ng build --prod работает нормально.Я даже не вижу эти переменные с таким именем только Observables, но они имеют $ infront от переменных.

ВОПРОС ОБНОВЛЕН *

"@ types/ jasmine ":" 2.8.9 "," @ types / jasminewd2 ":" ~ 2.0.3 "," @ types / node ":" ~ 8.9.4 "," codelyzer ":" ~ 4.2.1 ","jasmine-core ":" ~ 2.99.1 "," jasmine-spec-reporter ":" ~ 4.2.1 "," karma ":" ~ 1.7.1 "," karma-chrome-launcher ":" ~ 2.2.0 "," Карма-охват-Стамбул-репортер ":" ~ 2.0.0 "," Карма-Жасмин ":" ~ 1.1.1 "," Карма-Жасмин-html-репортер ":" ^ 0.2.2 ","транспортир": "^ 5.4.2", "ts-node": "~ 5.0.1", "tslint": "~ 5.9.1", "typcript": "~ 2.7.2"

Это все, что я вижу, когда открывается Карма enter image description here

Моя командная строка enter image description here

ТЕСТ ДЛЯ РОДИТЕЛЕЙфайл

describe('MembersComponent', () => {
  let component: MembersComponent;
  let fixture: ComponentFixture<MembersComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [
        ReactiveFormsModule,
        HttpClientModule,
        RouterTestingModule,
        StoreModule.forRoot({})
      ],
      declarations: [MembersComponent, ModalComponent],
      providers: [{ provide: Store, useClass: StoreStub }]
    }).compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(MembersComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});

ФАЙЛ ТЕСТА ДЛЯ РЕБЕНКА

describe('ModalComponent', () => {
  let component: ModalComponent;
  let fixture: ComponentFixture<ModalComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ModalComponent],
      imports: [FormsModule, ReactiveFormsModule, StoreModule.forRoot({})],
      providers: [Store]
    }).compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(ModalComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});

1 Ответ

1 голос
/ 29 мая 2019

Если вы даже не хотите проверять store, попробуйте ниже:

import { of } from 'rxjs';

class StoreStub {
    select(val: any) {
        if (val === 'whatever action you have defined for RacingSelectors.selectMembers') {
            return of<Member[]>([
                {}, // create dummy member objects
            ]);
        } else if (val === 'whatever action you have defined for RacingSelectors.selectTeams') {
            return of<Team[]>([
                { firstName: '' },
                { lastName: '' },
                { jobTitle: '' },
                { team: '' },
                { status: '' }, // create dummy member objects
            ]);
        }
    }
    dispatch() {}
}


и в spec файле:

    TestBed.configureTestingModule({
      imports: [
        ReactiveFormsModule,
        HttpClientModule,
        RouterTestingModule,
        StoreModule.forRoot({})
      ],
      declarations: [MembersComponent, ModalComponent],
      providers: [{ provide: Store, useClass: StoreStub}]
    }).compileComponents();
  }));

  it('should create', () => { 
        component.ngOnInit(); 
       expect(component).toBeTruthy(); 
   }); 

...