#reactjs #jestjs #matcher
#reactjs #jestjs #сопоставитель
Вопрос:
Мне нужно проверить URL-адрес, который был передан методу. Я написал пользовательский сопоставитель для этого, но я не знаю, как его использовать toHaveBeenCalledWith
.
Как я могу использовать свой пользовательский сопоставитель в этой ситуации?
Например, в C # Moq я могу сделать следующее, чтобы сопоставлять только четные числа:
mock.Setup(foo => foo.Add(It.Is<int>(i => i % 2 == 0))).Returns(true);
Ответ №1:
Может быть, не так элегантно, как то, что вы ищете, но вы должны иметь возможность применить свой пользовательский сопоставитель yourMockFunction.mock.calls[0][0]
.
expect(customMatcher(mockFunction.mock.calls[0][0])).toEqual(true)
Если есть несколько аргументов, вы можете прочитать следующие элементы mockFunction.mock.calls[0]
. Если вы хотите проверить несколько вызовов, они будут доступны в mockFunction.mock.calls[1]
, mockFunction.mock.calls[2]
и так далее.