Tùy chọn 1) Bạn có thể bọc thành phần thùng chứa với thành phần Nhà cung cấp React-Redux trong thử nghiệm của bạn. Vì vậy, với cách tiếp cận này, bạn thực sự tham khảo cửa hàng, chuyển nó cho nhà cung cấp, và soạn thành phần của bạn được thử nghiệm bên trong. Ưu điểm của phương pháp này là bạn thực sự có thể tạo một cửa hàng tùy chỉnh cho thử nghiệm. Cách tiếp cận này rất hữu ích nếu bạn muốn kiểm tra các phần liên quan đến Redux của thành phần của bạn. Tùy chọn 2) Có thể bạn không quan tâm đến việc kiểm tra các phần liên quan đến Redux. Nếu bạn chỉ quan tâm đến việc kiểm tra hiển thị của thành phần và các hành vi liên quan đến trạng thái cục bộ, bạn có thể chỉ cần thêm xuất có tên cho phiên bản thuần túy chưa được kết nối của thành phần của bạn. Và chỉ cần làm rõ khi bạn thêm từ khóa "xuất khẩu" vào lớp của bạn về cơ bản bạn đang nói rằng bây giờ lớp này có thể được nhập bằng 2 cách với dấu ngoặc nhọn {} hay không. Ví dụ:
export class MyComponent extends React.Component{ render(){ ... }}
...
export default connect(mapStateToProps, mapDispatchToProps)(MyComponent)
sau này tập tin thử nghiệm của bạn:
import MyComponent from 'your-path/MyComponent'; // it needs a store because you use "default export" with connect
import {MyComponent} from 'your-path/MyComponent'; // don't need store because you use "export" on top of your class.
tôi hy vọng sẽ giúp mọi người ra khỏi đó.
Tôi thấy bạn đang sử dụng gắn kết, nếu tôi cố gắng thay thế '' gắn kết'' bằng '' shallo'' tôi gặp lỗi. bạn đã gặp phải điều đó chưa? – Mehrdad
Trong khi câu trả lời này hoạt động trong một số trường hợp, nó không hoạt động khi bạn cần kiểm tra vòng đời của thành phần của bạn. Ví dụ, gọi 'wrapper.setProps()' sẽ không kích hoạt 'componentWillReceiveProps()' trên 'SampleComponent'. –