Pessoal!
Em Angularjs tenho uma controller que carrega uma lista através de uma service. Quando executo este teste, não consigo fazer ser aceito. Minha dúvida é por que?
Abaixo encontra-se o código:
Controller
export class UsuarioController {
constructor(usuario) {
'ngInject';
this.lista = [];
this.servico = usuario;
}
load() {
this.servico.get().then(() => {
this.lista = this.servico.data;
});
}
}
Service
export class UsuarioService {
constructor($http) {
'ngInject';
this.http = $http;
this.data = null;
}
get() {
return this.http.get(`/usuarios`)
.then(response => this.data = response.data)
.catch(err => err);
}
}
Teste de Unidade da controller
describe('usuario controller', () => {
var vm;
beforeEach(angular.mock.module('app'));
beforeEach(inject(($controller, usuario) => {
let promise = {
then: () => [{}, {}, {}, {}, {}]
};
spyOn(usuario, 'get').and.returnValue(promise);
vm = $controller('UsuarioController', { usuario: usuario });
}));
it('should define more than 5 users', (inject(($controller, usuario) => {
vm.load();
expect(vm.lista.length == 5).toBeTruthy();
})));
});