簡體   English   中英

使用酶測試React Native FlatList

[英]Testing React Native FlatList with Enzyme

我正在嘗試使用Enzyme和React Native FlatList進行測試。 我想檢查列表到達結尾時是否調用了正確的函數:

import { listIsAtTheEnd } from "./actions";
import { mount } from "enzyme";
jest.mock("./actions");


describe("Main page", () => {
    if("Calls listIsAtTheEnd when FlatList reaches the end", () => {
        var app = mount(<App />);
        var container = app.find("FlatListContainer");
        var fList = container.childAt(0);
        fList.instance().scrollToEnd();

        expect(listIsAtTheEnd.mock.calls).toHaveLength(1)
    })
})

但這就是我得到的:

TypeError: this._scrollRef.scrollTo is not a function

  at VirtualizedList.scrollToEnd (node_modules/react-native/Libraries/Lists/VirtualizedList.js:219:17)
  at FlatList.scrollToEnd (node_modules/react-native/Libraries/Lists/FlatList.js:544:141)
  at Object.<anonymous> (src/components/forumPage/__tests__/forumPageTests.js:81:21)
  at tryCallTwo (node_modules/promise/lib/core.js:45:5)
  at doResolve (node_modules/promise/lib/core.js:200:13)
  at new Promise (node_modules/promise/lib/core.js:66:3)

我究竟做錯了什么? 測試這個的正確方法是什么?

事實上,只要你超越一個非常簡單的淺渲染和快照組合,用酶測試React Native似乎不太可能/非常好。

我發現使用Test Renderer可以更加可靠地呈現像FlatList這樣的FlatList ,遍歷它並調用動作

另外測試上面的內容會很棘手,到目前為止,我一直在檢查使用間諜調用正確的API,而不是像上面那樣實際測試功能。

發生,但因為這個錯誤scrollTo沒有正確的嘲笑ScrollView模擬,你可以入侵周圍jest.mock例如。 請參閱: 此問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM