2017-07-25 48 views
5

Tôi đang sử dụng init gốc tự do để tạo dự án phản ứng gốc. Tôi đang sử dụng thư viện https://github.com/andpor/react-native-sqlite-storage cho các liên kết SQLite.Lỗi trường hợp thử nghiệm Jest trong phản ứng gốc bằng cách sử dụng plugin bên ngoài

Tôi có tệp kiểm tra đơn vị DbConnector.jest-test.js. Nội dung là

import DbConnector from '../app/components/DbConnector.js'; 
// Note: test renderer must be required after react-native. 
import renderer from 'react-test-renderer'; 

it('renders correctly',() => { 
const tree = renderer.create(
<DbConnector /> 
); 
}); 

Khi tôi chạy jest, tôi nhận được lỗi sau ngay cả khi mặc định node_modules bị bỏ qua. Tôi đang sử dụng cài đặt trước phản ứng bản địa trong package.json

Test suite failed to run 

ReferenceError: window is not defined 

    at Object.<anonymous> (node_modules/react-native-sqlite-storage/lib/sqlite.core.js:53:10) 
    at Object.<anonymous> (node_modules/react-native-sqlite-storage/sqlite.js:10:12) 
    at Object.<anonymous> (app/components/DbConnector.js:3:31) 

Test Suites: 1 failed, 1 total 

Nhập khẩu trong DbConnector.js như:

import React, { Component } from 'react' 
import { AppRegistry, StyleSheet, Text, View, TextInput, Button, Alert, 
AsyncStorage } from 'react-native' 
import SQLite from 'react-native-sqlite-storage' 

Trả lời

3

Hình như vấn đề của bạn window is not defined đến từ dòng này: https://github.com/andpor/react-native-sqlite-storage/blob/master/lib/sqlite.core.js#L53

Nó có vẻ như thử nghiệm của bạn thiếu nhập khẩu react-native và phải giống như sau:

import 'react-native'; 
import renderer from 'react-test-renderer'; 

Nếu điều đó không làm việc, bạn có thể có thể làm theo các bước để sử dụng JSDOMfrom this guide (đó là từ Enzyme, nhưng vẫn có thể giúp đỡ!)

1

Bạn nên cố gắng để thử phản ứng bản địa-sqlite-lưu trữ trước Bài kiểm tra của bạn.

jest.mock('react-native-sqlite-storage'); 
Các vấn đề liên quan