Я использую mogtore ngrx для тестирования моего компонента. Компонент использует два оператора выбора в двух разных методах, как показано ниже
getInfo()
{
this.store.select(getParams).subscribe(params => {
this.queryparams = params; });
}
Второй метод -
getProfile()
{
this.store.select(getprofile).subscribe(profile => {
this.profile = profile;
});
}
, где селектор getParams возвращает свойство с именем params из следующего объекта объектасостояние
urlparams:
{
params: any;
htest: string,
starttime: string
}
, в то время как getprofile возвращает приведенный ниже объект
profileinfo
{
name: string,
id: number,
age: number
}
У меня также есть оператор хранилища отправки в коде моего контроллера. Мой вопрос заключается в том, как написать пример модульного теста для кода, как указано выше. Я использовал ngrx mockstore в своем модульном тесте следующим образом: я объявил начальное состояние, как показано ниже
const initialState = {
params: {
sstring: "now",
filter: "yes"
},
profileinfo: {
name: "brd",
id: 21,
age: 45
}
}
, а в разделе поставщиков я предоставил mockstore, как показано ниже
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [TestHostInspComponent],
imports: [MaterialModule, BrowserAnimationsModule,FiltersModule],
providers: [
provideMockStore({ initialState })
],
schemas: [NO_ERRORS_SCHEMA]
})
.compileComponents();
store = TestBed.get(Store);
fixture = TestBed.createComponent(TestHostInspComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
когда я делаю, как указано выше, я получаю следующую ошибку:
Uncaught TypeError: Cannot read property 'params' of undefined
Подводя итог, я пытаюсь понять, как макетировать хранилище, используя mogtore ngrx, где в коде контроллера есть пара операторов выбора и операторов отправкикоторые относятся к различным частям государства.
А также, где я иду не так
TIA