Dưới đây là một thành phần đơn giản mà tôi đang cố gắng thử nghiệm sử dụng Phản ứng Native 0,39 và jest 18:Làm cách nào để kiểm tra thành phần Gốc phản ứng nhập mô-đun gốc tùy chỉnh bằng Jest?
// index.ios.js
import React, { Component } from 'react';
import { AppRegistry, NativeModules, View } from 'react-native';
export default class TestProject extends Component {
componentDidMount() {
NativeModules.TestModule.test();
}
render() {
return <View style={{ flex: 1 }} />;
}
}
AppRegistry.registerComponent('TestProject',() => TestProject);
Đây là TestModule và test
phương pháp của nó:
// ios/TestProject/TestModule.m
#import "TestModule.h"
@implementation TestModule
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(test){
NSLog(@"This is a test");
}
@end
Các thử nghiệm sau thất bại với lỗi TypeError: Cannot read property 'test' of undefined
:
// __tests__/index.ios.js
import 'react-native';
import renderer from 'react-test-renderer';
import React from 'react';
import Index from '../index.ios.js';
it('renders correctly',() => {
const tree = renderer.create(
<Index />
);
});
tôi đã đọc các tài liệu jest về cách Mock native modules using jest.mock, nhưng tôi st không rõ ràng về cách mở rộng mô hình NativeModules của Jest để bao gồm lớp TestModule của tôi ở trên.
Cảm ơn! Hàm được truyền vào 'beforeEach' thiếu một dấu ngoặc nhọn, nhưng nếu không thì nó hoạt động như một nét duyên dáng. Tôi cũng đã chọn sử dụng 'beforeAll' thay vào đó, vì thiết lập này chỉ cần chạy một lần, thay vì trước mỗi thông số kỹ thuật. – andybangs
Tuyệt vời và tôi đã thêm dấu ngoặc nhọn bị thiếu. – rgoldfinger