2017-09-20 1 views
0

Je suis assez nouveau pour React natif et Javascript, j'essaie actuellement de tester des méthodes à l'intérieur de mes composants, je l'ai vu se fait avec l'enzyme commeMéthode d'essai dans le composant sans enzyme - React natif

const wrapper = shallow(<Component/>);
wrapper.instance().methodIwannaCall();

Venant du monde iOS Dev, j'ai du mal à comprendre pourquoi il semble si compliqué d'obtenir une instance d'une classe et d'appeler une méthode dessus.

Malheureusement j'utilise React 16.0.0-alpha.12 ce qui signifie que je ne peux pas pour l'instant utiliser Enzyme, qui semble être la bibliothèque que tout le monde utilise pour accomplir ce dont j'ai besoin.

Notez également que je n'utilise pas Redux, je suppose que ce serait moins pénible si j'utilisais Redux, puisque toute ma logique métier serait dans les actions et donc serait plus facile à tester.

Tous les commentaires/l'aide sont grandement appréciés.

Vive

Répondre

0

Vous pouvez utiliser pur ReactTestUtils pour obtenir instance de votre composant, par exemple en utilisant la méthode renderIntoDocument:

import ReactTestUtils from 'react-dom/test-utils'; 

const wrapper = ReactTestUtils.renderIntoDocument(<Component/>); 
wrapper.methodIwannaCall(); 
+0

hey @Amid merci pour votre réponse, je ne l'ai pas réussi à obtenir ce à travail, et je viens de lire ReactTestUtils ne fonctionnera pas avec React-Native. Voir cette réponse https://stackoverflow.com/a/46381217/1932547 – Andrespch

+0

Je suis désolé - manqué votre tag de réaction-native. Je n'ai utilisé cette approche qu'avec une réaction ordinaire. – Amid