跳转到主要内容

在测试中桩化性能分析器

之前 所述,您可以通过将 enabled 属性设置为 false 来完全关闭性能分析。您也可以使用此机制在测试环境中禁用性能分析器。禁用性能分析器会将所有公共 API 转换为无操作,从而确保它们对您的业务逻辑测试的干扰最小。

我们建议在设置测试上下文(您的测试主题组件在其中渲染)时,将 PerformanceProfilerenabled 状态配置为 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 file
import '@shopify/react-native-performance/jest-mock';
ts
// in your jest config file
import '@shopify/react-native-performance/jest-mock';