Это дополнительный вопрос к этому вопросу .
У меня есть функция с именем assertTruthy
для Jest. assertTruthy(msg, fn, args)
, ожидает сообщение, функцию и аргументы и должен пройти, если вещь, возвращаемая при вызове функции с аргументами, является верной и завершится ошибкой, если ее нет.
Я хочу расширить его, чтобы также поддерживать Jest's only
и skip
.
Вот что я написал:
assertTruthy.skip = ({
message = '',
fn = undefined,
args,
} = {}) => {
it.skip(message, () => {
expect(fn(args)).toBeTruthy();
});
};
assertTruthy.only = ({
message = '',
fn = undefined,
args,
} = {}) => {
it.only(message, () => {
expect(fn(args)).toBeTruthy();
});
};
Как бы я протестировал эти функции?
Вот то, что я попробовал, и это работает, но я не уверен, что это правильно.
describe('skip()', () => {
test('it skips the function', () => {
it.skip = jest.fn();
assertTruthy.skip({
message: 'something',
fn: () => true,
args: undefined,
});
expect(it.skip).toHaveBeenCalledTimes(1);
});
});