Tôi đang sử dụng Enzyme và chúng tôi thực sự có thể sử dụng thành phần example được đưa ra trong tài liệu làm nền tảng cho câu hỏi của tôi.Làm cách nào để một trạng thái truy cập vào thành phần React lồng nhau được bao bọc bởi một HOC?
Giả sử thành phần <Foo />
này sử dụng thành phần <Link>
từ ReactRouter và do đó chúng tôi cần bọc nó trong một <MemoryRouter>
để thử nghiệm.
Đây là vấn đề.
it('puts the lotion in the basket',() => {
const wrapper = mount(
<MemoryRouter>
<Foo />
</MemoryRouter>
)
wrapper.state('name') // this returns null! We are accessing the MemoryRouter's state, which isn't what we want!
wrapper.find(Foo).state('name') // this breaks! state() can only be called on the root!
})
Vì vậy, không chắc chắn cách truy cập trạng thái thành phần cục bộ khi sử dụng <MemoryRouter>
.
Có lẽ tôi đang thực hiện một bài kiểm tra không biết gì? Đang cố gắng để có được/thiết lập trạng thái thành phần xấu thực hành trong thử nghiệm? Tôi không thể tưởng tượng nó là, như Enzyme có phương pháp để nhận/thiết lập trạng thái thành phần.
Chỉ cần không chắc chắn làm thế nào người ta có nghĩa vụ phải truy cập vào bên trong của một thành phần bọc trong <MemoryRouter>
.
Bất kỳ trợ giúp nào sẽ được đánh giá rất nhiều!
liên quan: https://stackoverflow.com/questions/42245215/how-to-test-child -phù hợp-phương pháp-với-enzyme – indiesquidge