В подобных случаях необходимо создать (как минимум) два модульных теста:
- тест для
myFunction
- тест для обратного вызова
Так что это может выглядеть примерно так:
it('should test myFunction', () => {
let spy = jasmine.createSpy();
let result = myFunction(spy);
expect(spy).toHaveBeenCalledWith(...args);
expect(result).toBeCorrectOrSomething();
});
it('should test the callback', () => {
let callback = createCallback();
let result = callback(...args);
expect(result).toBeCorrectOrSomething();
});
Обратите внимание, что я говорю не менее 2 тестов, потому что вам, вероятно, придется тестировать различные пути через каждыйиз этих функций.
Также обратите внимание, что для этого требуется, чтобы у вас была возможность получить доступ к обратному вызову в ваших тестах, поэтому он должен быть доступен из создаваемого вами модуля.