diff --git a/scripts/__tests__/ComponentTest/ForwardRef.test.js b/scripts/__tests__/ComponentTest/ForwardRef.test.js
new file mode 100644
index 00000000..993d800a
--- /dev/null
+++ b/scripts/__tests__/ComponentTest/ForwardRef.test.js
@@ -0,0 +1,45 @@
+import * as Horizon from '@cloudsop/horizon/index.ts';
+import { getLogUtils } from '../jest/testUtils';
+
+describe('ForwardRef', () => {
+ const LogUtils = getLogUtils();
+ it('ForwardRef包裹的函数组件应该正常触发effect', () => {
+ function App(props, ref) {
+ Horizon.useEffect(() => {
+ LogUtils.log('effect');
+ return () => {
+ LogUtils.log('effect remove');
+ };
+ });
+ return ;
+ }
+
+ const Wrapper = Horizon.forwardRef(App);
+
+ Horizon.act(() => {
+ Horizon.render(, container);
+ });
+ expect(LogUtils.getAndClear()).toEqual(['effect']);
+ Horizon.act(() => {
+ Horizon.render(, container);
+ });
+ expect(LogUtils.getAndClear()).toEqual(['effect remove', 'effect']);
+ });
+
+ it('memo组件包裹的类组件', () => {
+ class Component extends Horizon.Component {
+ render() {
+ return ;
+ }
+ }
+
+ const Wrapper = Horizon.memo(Component);
+
+ Horizon.act(() => {
+ Horizon.render(, container);
+ });
+ Horizon.act(() => {
+ Horizon.render(, container);
+ });
+ });
+});