Я тестирую валидатор, который делает вызов службе, если возвращается ноль, возвращается объект ошибки.
Я создал шпиона для службы с returnValue, котораяКажется, работает нормально, но мне трудно выполнить функцию проверки и вернуть значение.
Я закончил тем, что создал шпиона для функции, которую я тестирую, но я не думаю, чтоЯ должен делать.
Функция валидатора:
Он принимает службу в качестве параметра и использует внутренне
static require(service: Service): ValidatorFn {
return (formGroup: FormGroup): { [key: string]: boolean } | null => {
const checkedCount = state.currentCount();
if (checkedCount === 0) {
return {
'isNotChecked' : true
};
}
return null;
};
}
Тест, который работает: Как я сказал, янеужели я не думаю, что мне следовало бы шпионить за функцией, которую я тестирую?
it('should return error object when currentCount === 0', () => {
spyOn(service, 'currentCount').and.returnValue(0);
spyOn(ModValidation, 'require').and.returnValue({ 'isNotChecked' : true });
service.currenCount();
expect(ModValidation.require(service)).toEqual({ 'isNotChecked' : true });
});
То, что я пробовал, но не работает:
it('should return error object when currentCount === 0', () => {
spyOn(service, 'currentCount').and.returnValue(0);
const resp = ModValidation.require(service);
service.currentCount();
expect(resp).toEqual({ 'isNotChecked' : true });
});
Я получаю
Expected Function to equal Object({ isNotChecked: true }).