5.9 KiB
5.9 KiB
Popup樣式一致性測試案例
測試目標
驗證展示頁面的"詞卡風格"popup與AI生成頁面的實際詞彙popup樣式是否完全一致。
測試環境
- 瀏覽器: Chrome/Safari/Firefox
- 屏幕尺寸: 桌面端(>1024px)、平板端(768-1024px)、手機端(<768px)
- 展示頁面: http://localhost:3000/vocab-designs
- 實際功能: http://localhost:3000/generate
詳細測試案例
TC-001: 視覺外觀對比
TC-001-01: 整體尺寸檢查
測試步驟:
- 打開展示頁面,選擇"詞卡風格",點擊預覽按鈕
- 打開AI生成頁面,輸入"Hello world",點擊分析,點擊任意詞彙
- 使用瀏覽器開發者工具測量popup尺寸
檢查項目:
- popup寬度是否相同
- popup高度是否相似
- 圓角半徑是否一致 (
rounded-xl) - 陰影效果是否相同 (
shadow-lg)
預期結果: 兩個popup的外觀尺寸應該完全相同
TC-001-02: 標題區對比
檢查項目:
- 漸層背景是否相同 (
bg-gradient-to-br from-blue-50 to-indigo-50) - 內邊距是否一致 (
p-5) - 邊框是否相同 (
border-b border-blue-200)
測試方法: 使用瀏覽器檢查元素工具對比CSS類別
TC-001-03: 關閉按鈕檢查
檢查項目:
- 按鈕位置: 右上角
- 按鈕尺寸:
w-6 h-6 - 背景色:
bg-white bg-opacity-80 - 懸停效果是否相同
TC-002: 內容佈局對比
TC-002-01: 詞彙標題行
展示頁面: elaborate + [B2]在同一行
實際popup: {word} + {difficultyLevel}
檢查項目:
- 詞彙名稱字體大小 (
text-2xl font-bold) - CEFR標籤位置 (最右邊)
- 行間距是否一致 (
mb-3)
TC-002-02: 詞性發音行
展示頁面: [verb] /pronunciation/ ▶️ + [B2]
實際popup: [partOfSpeech] /pronunciation/ ▶️ + [difficultyLevel]
檢查項目:
- 詞性標籤樣式 (
bg-gray-100 text-gray-700 px-3 py-1 rounded-full) - 發音字體大小 (
text-base text-gray-600) - 播放按鈕尺寸 (
w-8 h-8 bg-blue-600 rounded-full) - 元素間距 (
gap-3)
TC-003: 彩色區塊對比
TC-003-01: 翻譯區塊
檢查項目:
- 背景色:
bg-green-50 - 邊框:
border border-green-200 - 內邊距:
p-3 - 標題樣式:
font-semibold text-green-900 mb-2 text-left text-sm - 內容樣式:
text-green-800 font-medium text-left
TC-003-02: 定義區塊
檢查項目:
- 背景色:
bg-gray-50 - 邊框:
border border-gray-200 - 標題:
font-semibold text-gray-900 mb-2 text-left text-sm - 內容:
text-gray-700 text-left text-sm leading-relaxed
TC-003-03: 同義詞區塊
檢查項目:
- 背景色:
bg-purple-50 - 邊框:
border border-purple-200 - 標籤樣式:
bg-white text-purple-700 px-2 py-1 rounded-full text-xs
TC-004: CEFR顏色測試
TC-004-01: 六個等級顏色檢查
測試數據: A1, A2, B1, B2, C1, C2
檢查項目:
- A1:
bg-green-100 text-green-700 border-green-200 - A2:
bg-blue-100 text-blue-700 border-blue-200 - B1:
bg-yellow-100 text-yellow-700 border-yellow-200 - B2:
bg-orange-100 text-orange-700 border-orange-200 - C1:
bg-red-100 text-red-700 border-red-200 - C2:
bg-purple-100 text-purple-700 border-purple-200
測試方法:
- 在展示頁面修改mock數據的difficultyLevel
- 在實際頁面測試不同CEFR等級的詞彙
- 對比顏色是否完全相同
TC-005: 按鈕樣式對比
TC-005-01: 保存按鈕檢查
檢查項目:
- 寬度:
w-full - 背景:
bg-primary - 內邊距:
py-3 - 圓角:
rounded-lg - 字體:
font-medium - 圖標尺寸:
w-4 h-4
TC-006: 響應式測試
TC-006-01: 手機端對比
測試步驟:
- 將瀏覽器調整為手機尺寸 (375px寬度)
- 分別測試兩個popup
- 檢查是否都能完整顯示
檢查項目:
- 寬度自動調整
- 不會超出屏幕邊界
- 內容不會被截掉
- 觸控操作友好
實際差異分析
🔍 程式碼層面的差異
1. CEFR顏色實現方式
展示頁面 (正確):
const getCEFRColor = (level: string) => {
switch (level) {
case 'A1': return 'bg-green-100 text-green-700 border-green-200'
// ... 完整的6個等級
}
}
實際popup (簡化版):
difficulty === 'A1' || difficulty === 'A2' ? 'bg-green-100 text-green-700' :
difficulty === 'B1' || difficulty === 'B2' ? 'bg-yellow-100 text-yellow-700' :
// ... 只有3-4個分組
2. 容器尺寸差異
展示頁面:
className="bg-white rounded-xl shadow-lg w-96 max-w-md overflow-hidden"
// 固定寬度 w-96 = 384px
實際popup:
width: 'min(384px, calc(100vw - 32px))'
// 響應式寬度
3. 可能的其他差異
- 字體載入狀態
- CSS優先級問題
- 瀏覽器快取問題
- 假資料vs真實資料的處理差異
修正建議
高優先級修正:
- 統一CEFR顏色函數: 在ClickableTextV2中實現完整的getCEFRColor
- 統一容器樣式: 確保所有CSS類別完全相同
- 統一寬度處理: 在保持響應式的前提下統一寬度邏輯
測試驗證:
- 並排對比: 同時打開兩個頁面進行視覺對比
- 開發者工具: 使用瀏覽器工具檢查computed styles
- 不同設備: 在桌面端和手機端都進行測試
結論
我承認之前的判斷可能不準確,因為我無法實際看到瀏覽器渲染效果。通過程式碼分析,確實存在一些可能導致視覺差異的技術細節。需要進行實際的程式碼修正和測試來確保兩者完全一致。