mercredi 9 novembre 2016

Angular 2 mocking method and calling

I'm trying to call a mocked service and update the user variable, but when I call the mocked service nothing changes?

I am generally struggling with testing, if there are any good resources to learn with angular2 I'm all ears.

let users = [{ name: 'Test', lastname: 'User' },  { name: 'Test2', lastname: 'User2' }];
let addedUsers = [{ name: 'blah', lastname: 'blah' },{ name: 'Test', lastname: 'User' },  { name: 'Test2', lastname: 'User2' }];

describe('Component: UserList', () => {
 beforeEach(() => {

 userServiceStub = {
  getUsers: () => {
    return Observable.of(users);
  },
  getUser: () => {
    return Observable.of(user);
  },
  addUser: () => {
    users.push({ name: 'blah', lastname: 'blah' });       
  }
};

TestBed.configureTestingModule({
  declarations: [UserListComponent],
  imports: [HttpModule],
  providers: [ 
      {provide: UsersService, useValue: userServiceStub },
      { provide: Router, useClass: RouterStub } 
    ]
});

app = fixture.debugElement.componentInstance; 
userService = fixture.debugElement.injector.get(UsersService);

it('should call addUser on button click', () => {
 let spy = spyOn(userService, 'addUser');     
 userService.addUser('argument'); 
 fixture.detectChanges();     
 expect(users).toEqual(addedUsers);
});

});

Aucun commentaire:

Enregistrer un commentaire