[英]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.