2 votes

Tests spécifiques à la plateforme en utilisant Jest sur une application React Native.

Il s'agit du composant react native

//Test.js

export default class Test extends Component {
    render() {
        return(
            <View>
                </Animated.View> {
                  Platform.OS === 'android' &&
                  <TouchableNativeFeedback>
                    // some android specific code
                  </TouchableNativeFeedback>
                }</Animated.View>
            </View>
        )
    }
}

Il s'agit du cas de test ;

//testcases.js
import { Text, TouchableOpacity, Platform } from 'react-native';
import React from 'react';
import ReactDOM from 'react-dom';
import { shallow } from 'enzyme';
import Test from '../Test'

describe('Testing an App', () => {
    let snapshot;

    beforeAll(() => {
        snapshot = shallow(<Test />);
        Platform.OS = 'android';
    });
    it(' -- must return 1', () => {      
      expect(snapshot.find('TouchableNativeFeedback').length).toBe(1);
    });
});

Alors que le rendement attendu est de 1, la valeur reçue est de 0. J'ai configuré la plate-forme en tant qu'"Android", mais je n'ai pas obtenu de résultat.

Je suis novice en matière de tests d'automatisation des téléphones portables ; il se peut donc que je passe à côté de quelque chose d'évident. Est-ce que je devrais utiliser react-dom pour faire le rendu et tester plus loin ?

J'ai l'impression qu'il s'agit de quelque chose de très évident, mais je n'arrive pas à mettre le doigt dessus.

Voici mon package.json

{
  "name": "exampleApp",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "react": "15.4.1",
    "react-native": "0.42.3"  
  },
  "devDependencies": {
    "babel-jest": "20.0.3",
    "babel-preset-react-native": "2.0.0",
    "jest": "20.0.4",
    "enzyme" : "2.8.0",
    "react-dom": "15.4.1",
    "react-addons-test-utils":"15.4.1",
    "react-test-renderer": "15.4.1"
  },
  "jest": {
    "preset": "react-native"    
  }
}

0voto

Antoine Grandchamp Points 2638

Vous ne pouvez pas changer de plateforme directement dans votre test. Vous devez définir la plateforme souhaitée dans vos paramètres. Jetez un coup d'œil à cette documentation pour voir comment procéder.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X