Заглушка Sinon записывает только реагирующие вызовы, если она уже была запущена

Yahoo использует метод, называемый идентификатором отправителя, который может быть настроен в Мастере установки SPF и введен в ваш DNS. Также один из важных для Exchange, Hotmail, AOL, Yahoo и других - иметь обратный DNS для вашего домена. Те будут выбивать большинство проблем. Однако вы никогда не можете помешать человеку умышленно блокировать ваши или пользовательские правила.

0
задан Duncan Thacker 18 January 2019 в 22:14
поделиться

1 ответ

Исходное сообщение об ошибке, которое вы получили, совершенно правильное - если посмотреть на , документы Sinon , .calledOnce - это не функция, это javascript get, который выполняет код. В общем, ожидания Чая кажутся функциями, только если им нужны параметры.

Я нахожу это немного раздражающим, потому что get перегрузка не очень хороша и ломает нашу способность рассуждать о коде, и это вызывает кучу ошибок, но эй хо.

Изменение ожидаемого значения на

expect(floopStub).to.have.been.calledOnce;

исправляет тест (по крайней мере, на моей машине!)

Причина, по которой код кажется «работающим» во втором примере, заключается в том, что тест разрешает операцию calledOnce get, которая проверяет условие и генерирует утверждение о неудачном тестировании, поэтому никогда не возникает вероятность выбросить исходную ошибку, пытаясь вызвать результат get, как если бы он был функцией.

Между прочим, легче инициировать событие щелчка с помощью встроенного вызова фермента .simulate(). Этот код работает нормально:

const floopStub = sinon.stub();
const wrapper = shallow(<CardWarsComponent floopThePig={floopMock}></CardWarsComponent>);
wrapper.find('#FloopButtonId').dive().simulate('click');
expect(floopStub).to.have.been.calledOnce;

Более подробную информацию о тестировании событий React с помощью синона / энзима можно найти здесь: https://www.leighhalliday.com/testing-react-jest-enzyme- Sinon

0
ответ дан Duncan Thacker 18 January 2019 в 22:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: