Uncaught TypeError: Невозможно прочитать свойство 'coSearchCriteria' неопределенного броска - Угловая карма / Жасмин - PullRequest
0 голосов
/ 02 сентября 2018

Я попытался проверить угловой компонент с помощью кармы / жасмина. Честно говоря, я не имею большого представления о карме / жасмине и во время тестирования получаю сообщение об ошибке типа "Uncaught TypeError: Невозможно прочитать свойство 'coSearchCriteria' из неопределенного брошенного". Но нормальная функциональность компонентов работает нормально. Если есть идеи, пожалуйста, помогите мне.

Это мой код тестирования, здесь базовый контрольный пример «должен создать» работает, но второй дает ошибку.

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

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [ReactiveFormsModule, FormsModule, HttpModule, CarbonDatepickerModule, CarbonModalModule,CarbonIconModule, StoreModule.forRoot({})],
      declarations: [ SearchPanelComponent, UploadsearchcriteriaComponent ],
      providers: [ Store, StoreModule, CustomerorderService,ConnectionBackend, ApiConnectorService, HttpClient, HttpHandler,Http, CarbonModalService]    })
    .compileComponents();
  }));

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

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

it('RSSD To should be invalid', async( () => {
  const dateValue = component.orderUnitForm.controls['rssddateto'];
  dateValue.setValue('12-02/2012');
  fixture.detectChanges();
  expect(component.orderUnitForm.valid).toEqual(false);
}));

И 'coSearchCriteria', который я использовал в файле .ts только так

this.store.select(selectorCOCriteriaState)
    .subscribe((coSearchCriteria: SearchCriteriaState) => {   
       this.searchState = coSearchCriteria.lastUsedCriteria;     
    });   
    if(this.searchState){
        this.fillSearchStateData();  
    }

1 Ответ

0 голосов
/ 11 сентября 2018

Наконец-то получил исправление, просто надо издеваться над хранилищем ngrx в spec-файле.

class MockStore {
  public dispatch(obj) {
    console.log('dispatching from the mock store!')
  }

  public select(obj) {
    console.log('selecting from the mock store!');

    return Observable.of({})
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...