Im using findRenderedComponentWithType, чтобы убедиться, что есть ошибка, и я использую chai's assert.throws, но он не работает.ReactTestUtils findRenderedComponentWithType ошибка бросания, не определяемая chai?
прежде всего:
TestUtils.findRenderedComponentWithType документация:
expects there to be one result and returns that one result, or throws exception if there is any other number of matches besides one.
Когда я использую функцию, Im получая ошибку (как и ожидалось, и правильно). Однако я не могу утверждать это правильно с chai: Я пробовал assert.throws(TestUtils.findRenderedComponentWithType(element, component), /(Error)/)
. Но это говорит тест не пройден, несмотря на то, что я получаю сообщение об ошибке:
Error: Did not find exactly one match for componentType:function (props, context, updater) {
[...]
}
в первую очередь это работает спасибо. Я на самом деле читать, что раньше, но я не понимаю, метод и функция отличается по определению, но я до сих пор Dont действительно видеть, как это сделал diff. chai просто запускается в первом параметре, а затем проверяет, что он выводит? это как-то связано с обратным вызовом? – user308553
Ваша первоначальная реализация не проходила в функции (или методе). Это происходит с тем, что вещи выполняются. «TestUtils.findRenderedComponentWithType (element, component)» запускается первым и возвращает объект Component или выдает ошибку. Так что действительно вы проходите в одном из этих типов. Подумайте, как это можно реализовать. Он выполняет функцию, а затем завертывает ее в блок try/catch THEN. Принимая во внимание, что вы выполняли его ТОЛЬКО за кулисами, он обертывался, но к тому времени уже слишком поздно; ошибка была сброшена – ken4z
В качестве примечания, вы можете проверить https://github.com/airbnb/enzyme. Я обнаружил, что ReactTestUtils lib немного больно работать (особенно эти имена методов), так что я начал писать свои собственные, прежде чем Enzyme стал доступен. – ken4z