在测试中桩化性能分析器
如 之前 所述,您可以通过将 enabled
属性设置为 false
来完全关闭性能分析。您也可以使用此机制在测试环境中禁用性能分析器。禁用性能分析器会将所有公共 API 转换为无操作,从而确保它们对您的业务逻辑测试的干扰最小。
我们建议在设置测试上下文(您的测试主题组件在其中渲染)时,将 PerformanceProfiler
的 enabled
状态配置为 false
。例如,如果您正在使用 react-native-testing-library
tsx
import {render} from 'react-native-testing-library';const TestRenderContext = ({children}: {children: React.ReactNode}) => {return (<PerformanceProfiler enabled={false} onReportPrepared={() => {}}>{children}</PerformanceProfiler>);};describe('MyScreenTest', () => {it('does something', () => {render(<TestRenderContext><MyScreen /></TestRenderContext>,);// assert things});});
tsx
import {render} from 'react-native-testing-library';const TestRenderContext = ({children}: {children: React.ReactNode}) => {return (<PerformanceProfiler enabled={false} onReportPrepared={() => {}}>{children}</PerformanceProfiler>);};describe('MyScreenTest', () => {it('does something', () => {render(<TestRenderContext><MyScreen /></TestRenderContext>,);// assert things});});
此外,该库还公开了一个可以在您的 jest 配置脚本中导入的模拟文件。该文件将设置库在测试环境中正常工作所需的一些模拟。
ts
// in your jest config fileimport '@shopify/react-native-performance/jest-mock';
ts
// in your jest config fileimport '@shopify/react-native-performance/jest-mock';