Я хочу проверить метод get и установить my user.store.ts
.У меня есть get()
, который используется для получения users
и addUsers()
, который используется для добавления пользователей в BehaviourSubject
.Как я могу добиться этого?
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { User } from 'ngx-login-client';
@Injectable({
providedIn: 'root'
})
export class UserStore {
private _users: BehaviorSubject<User[]> = new BehaviorSubject([]);
get users() {
return this._users.asObservable();
}
addUsers(users: User[]) {
this._users.next(users);
}
}
Я ожидал, что выходные данные будут добавлены к значениям при вызове addUsers()
и могут get
пользователей при вызове get users()
. Я новичок в Angular Testing.
Получение сообщения об ошибке типа:
Expected Observable({ _isScalar: false, source: BehaviorSubject({
_isScalar: false, observers: [ ], closed: false, isStopped: false, hasError: false, thrownError: null, _value: [ Object({ attributes:
Object({ fullName: 'name', imageURL: '', username: 'myUser' }), id:
'userId', type: 'userType' }) ] }) }) to equal [ Object({ attributes:
Object({ fullName: 'name', imageURL: '', username: 'myUser' }), id:
'userId', type: 'userType' }) ].
My User[]
имеет тип:
{
'attributes': {
'fullName': 'name',
'imageURL': '',
'username': 'myUser'.
},
'id': 'userId',
'type': 'userType'
}
обновление: мой файл user.store.spec.ts .
import { TestBed, async } from '@angular/core/testing';
import { UserStore } from './user.store';
import { BehaviorSubject } from 'rxjs';
import { User } from 'ngx-login-client';
describe('UsersStore', () => {
beforeEach(() => TestBed.configureTestingModule({}));
it('should be created', () => {
const store: UserStore = TestBed.get(UserStore);
expect(store).toBeTruthy();
});
it('should add Users', async(() => {
let store: UserStore;
store = TestBed.get(UserStore);
let user: User[];
const testUser: User[] = [{
'attributes': {
'fullName': 'name',
'imageURL': '',
'username': 'myUser'
},
'id': 'userId',
'type': 'userType'
}];
store.addUsers(testUser);
store.users.subscribe(users => {
expect(users).toBe(testUser);
});
}));
});`