Jest: Impor Uji Snapshot tidak berfungsi dengan babel-preset

Dibuat pada 15 Agu 2016  ·  3Komentar  ·  Sumber: facebook/jest

Saya mencoba tes snapshot sederhana. Komponen yang saya uji menggunakan komponen lain dari sebuah modul. Tes gagal saat mencoba mengimpor modul yang tidak di-mock ini dengan:

Kegagalan

Using Jest CLI v14.1.0, jasmine2, babel-jest, jest-react-native preset
 FAIL  js/app/SetupView/__tests__/SetupView-test.js (0s)
 Runtime Error
  - SyntaxError: Unexpected reserved word
        at transformAndBuildScript (../../../../../usr/local/lib/node_modules/jest-cli/node_modules/jest-runtime/build/transform.js:306:10)
        at Object.<anonymous> (js/app/SetupView/index.js:12:17)
        at Object.<anonymous> (js/app/SetupView/__tests__/SetupView-test.js:11:12)
1 test suite failed, 0 tests passed (0 total in 1 test suite, run time 2.419s)

Tes

'use strict';
import 'react-native';
import React from 'react';

import SetupView from '../index';

import renderer from 'react-test-renderer';

describe('SetupView', ()=> {
  it('renders correctly', ()=>{
    const tree = renderer.create(
      <SetupView/>
    ).toJSON();
    expect(tree).toMatchSnapshot();
  })
});

SetupView Komponen

'use strict';

import React from 'react';
import {
  View,
  Text,
  TouchableHighlight,
  Image,
  Animated,
} from 'react-native';

import DataContainer from 'react.datacontainer'; //<---fails here
import DashboardSettings from './DashboardSettings';
.
.
.

package.json

"jest": {
    "globals": {
      "__DEV__": true
    },
    "collectCoverage": false,
    "verbose": true,
    "preset": "jest-react-native",
    "modulePathIgnorePatterns": [
      "node_modules/react-native/node_modules/yeoman-generator",
      "node_modules/react-native/node_modules/fbjs"
    ],
    "unmockedModulePathPatterns": [
      "react.datacontainer",
      "react.data",
      "react.base.theme",
      "react.layout"
    ]
  }

FYI, saya memiliki file .babelrc di direktori root saya yang menunjuk ke preset asli-reaksi dan pengujian berjalan tetapi gagal jika saya mengomentari baris 12 karena DataContainer tidak ditentukan.

Komentar yang paling membantu

Bisakah Anda mencoba jest --no-cache ? Jika Anda mengubah babelrc Anda sebelum permintaan terakhir, kami mungkin tidak memperbarui cache dengan benar.

Jika itu tidak berhasil, silakan buat repo di github yang dapat saya instal npm dan uji npm untuk memecahkan masalah.

Tip: Anda tidak perlu unmockedModulePathPatterns saat menggunakan react-native-preset karena automocking akan tetap dinonaktifkan.

Semua 3 komentar

Bisakah Anda mencoba jest --no-cache ? Jika Anda mengubah babelrc Anda sebelum permintaan terakhir, kami mungkin tidak memperbarui cache dengan benar.

Jika itu tidak berhasil, silakan buat repo di github yang dapat saya instal npm dan uji npm untuk memecahkan masalah.

Tip: Anda tidak perlu unmockedModulePathPatterns saat menggunakan react-native-preset karena automocking akan tetap dinonaktifkan.

Itu tidak berhasil untuk saya. Sepertinya masalahnya adalah dengan mengimpor node_module react.datacontainer . Setelah menggali lebih dalam, saya yakin prasetel lelucon tidak mengkompilasi node_modules yang ditulis dalam es6.

Sayangnya, saya tidak dapat membuat repo saat ini. Tetapi jika ini membantu lebih jauh, inilah tampilan modul 'react.datacontainer'. https://github.com/ForceDotComLabs/react.force.datacontainer

Anda dapat mengaktifkan prapemrosesan untuk modul ini melalui opsi konfigurasi ini: http://facebook.github.io/jest/docs/tutorial-react-native.html#preprocessorignorepatterns -customization

Jika mau, Anda juga dapat membuat masalah di halaman github proyek ini untuk meminta mereka mengkompilasi dependensi mereka terlebih dahulu dan menerbitkan file build di npm.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat