前段

Change-Id: I718d4d07ea03c6d2b6bcbd4d426c5d1af2201bf4
diff --git a/src/setupTests.js b/src/setupTests.js
new file mode 100644
index 0000000..f739037
--- /dev/null
+++ b/src/setupTests.js
@@ -0,0 +1,28 @@
+// jest-dom adds custom jest matchers for asserting on DOM nodes.
+// allows you to do things like:
+// expect(element).toHaveTextContent(/react/i)
+// learn more: https://github.com/testing-library/jest-dom
+import '@testing-library/jest-dom';
+
+// 模拟 localStorage
+const localStorageMock = (function() {
+    let store = {};
+    return {
+      getItem: jest.fn((key) => store[key] || null),
+      setItem: jest.fn((key, value) => {
+        store[key] = String(value);
+      }),
+      removeItem: jest.fn((key) => {
+        delete store[key];
+      }),
+      clear: jest.fn(() => {
+        store = {};
+      })
+    };
+  })();
+  
+  // 挂载到全局
+  Object.defineProperty(window, 'localStorage', {
+    value: localStorageMock,
+    writable: true // 必须设置为可写
+  });
\ No newline at end of file