Я не могу правильно смоделировать мое возвращаемое значение функции внутри моей службы в моем тесте Angular.
Я использую:
jasmine v2.8.0 и jasmine-core v2.8.0
Я упростил код, чтобы его было легче понять. Вот оно ...
Это мой сервис, который я хочу проверить:
export class NetworkService {
testNumber = 0;
constructor(private networkReducerService: NetworkReducerService) {
this.testNumber = networkReducerService.getNumber();
}
}
Это мой spec.ts
describe('NetworkService', () => {
let service: NetworkService;
let networkReducerServiceSpy: jasmine.SpyObj<NetworkReducerService>;
beforeEach(() => {
const nRServiceSpy = jasmine.createSpyObj('NetworkReducerService', ['getNumber']);
TestBed.configureTestingModule({
providers: [NetworkService,
{provide: NetworkReducerService, useValue: nRServiceSpy}
]
});
service = TestBed.get(NetworkService);
networkReducerServiceSpy = TestBed.get(NetworkReducerService);
});
it('should have the following fields', () => {
networkReducerServiceSpy.getNumber.and.returnValue(1);
expect(networkReducerServiceSpy.getNumber).toHaveBeenCalled();
expect(service.testNumber).toBe(1);
});
});
Я хочу издеватьсяэтот метод getNumber внутри моего NetworkReducerService
@Injectable({
providedIn: 'root'
})
export class NetworkReducerService {
getNumber() {
return 1;
}
}
Я получаю следующую ошибку:
Ошибка: ожидается, что неопределенное значение равно 1.