ภาพรวมการกำหนดชนิดข้อมูลการทดสอบ E2E (Playwright/Cypress)
ดูการไหลของชนิดข้อมูล TypeScript ในการทดสอบ E2E ด้วย Playwright และ Cypress พร้อมเพิ่มการรองรับชนิดข้อมูลและตัวเลือกองค์ประกอบที่ปลอดภัย
ภาพรวมการกำหนดชนิดข้อมูลการทดสอบ E2E (Playwright/Cypress) เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
บทนำ
เป้าหมาย: ดูภาพรวมว่า TypeScript ช่วยเสริมการทดสอบ E2E อย่างไร เราจะตั้งค่าชนิดข้อมูลสำหรับ Playwright และ Cypress และเขียนการทดสอบที่มีชนิดข้อมูลขนาดเล็ก
ติดตั้ง Playwright
Playwright มาพร้อมตัวเรียกใช้การทดสอบและชนิดข้อมูลของตัวเอง นำเข้าจาก @playwright/test เพื่อให้ได้ การทดสอบ, การคาดหมาย และ หน้าเว็บที่มีชนิดข้อมูล
npm install --save-dev @playwright/testการทดสอบด้วย Playwright
ใน Playwright ชนิดข้อมูลของหน้าเว็บและตัวระบุตำแหน่งมีความเข้มงวด การใช้งานผิดพลาดจะถูกตรวจพบระหว่างคอมไพล์
// example.spec.ts
import { test, expect } from "@playwright/test";
test("home loads", async ({ page }) => {
await page.goto("/")
const title = page.getByRole("heading", { name: /welcome/i })
await expect(title).toBeVisible()
// page is fully typed: URL, locators, assertions
})ชนิดข้อมูลของ Cypress
สำหรับชนิดข้อมูลส่วนกลางของ Cypress ให้เพิ่ม types: ["cypress"] ใน tsconfig หรือเขียนการอ้างอิงไปยังไฟล์สนับสนุน
// tsconfig.json (excerpt)
{
"compilerOptions": {
"types": ["cypress"]
}
}
// or in cypress/support/e2e.d.ts
/// <reference types="cypress" />การทดสอบด้วย Cypress
การต่อคำสั่ง cy, การต่อคำสั่งตรวจยืนยัน และคำสั่งปลั๊กอินมีชนิดข้อมูลด้วย TS ทำให้คำแนะนำจาก IDE ชัดเจนขึ้น
// cypress/e2e/home.cy.ts
describe("home", () => {
it("loads", () => {
cy.visit("/")
cy.findByRole("heading", { name: /welcome/i }).should("be.visible")
})
})ตัวช่วยเลือกองค์ประกอบ
ฟังก์ชันตัวช่วยที่อิง Data-testid มีความเสถียรกว่าตัวเลือก CSS/XPath ที่เปราะบาง และให้การเติมโค้ดอัตโนมัติด้วย TS ได้ง่าย
// helpers/selectors.ts
export const h = {
title: (name: string) => `[data-testid="title-${name}"]`,
}
// usage (Playwright)
// await expect(page.locator(h.title("home"))).toBeVisible()
// usage (Cypress)
// cy.get(h.title("home")).should("be.visible")การตรวจสอบชนิดข้อมูลของ Cypress
ตรวจสอบอย่างรวดเร็ว: คุณจะเปิดใช้ชนิดข้อมูลส่วนกลางของ Cypress (cy, Cypress) ใน TS ได้อย่างไร
สรุปทบทวน
สรุปทบทวน: Playwright และ Cypress มีชนิดข้อมูลที่เข้มงวดเมื่อใช้ร่วมกับ TS การตั้งค่าที่ถูกต้องและตัวเลือกที่ปลอดภัยทำให้การทดสอบ E2E เชื่อถือได้มากขึ้น
คำถามที่พบบ่อย
บทเรียน “ภาพรวมการกำหนดชนิดข้อมูลการทดสอบ E2E (Playwright/Cypress)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ภาพรวมการกำหนดชนิดข้อมูลการทดสอบ E2E (Playwright/Cypress)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ภาพรวมการกำหนดชนิดข้อมูลการทดสอบ E2E (Playwright/Cypress)”
ดูการไหลของชนิดข้อมูล TypeScript ในการทดสอบ E2E ด้วย Playwright และ Cypress พร้อมเพิ่มการรองรับชนิดข้อมูลและตัวเลือกองค์ประกอบที่ปลอดภัย คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน
บทเรียน “ภาพรวมการกำหนดชนิดข้อมูลการทดสอบ E2E (Playwright/Cypress)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม
ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การตั้งค่า Vitest/Jest สำหรับ TS
- การกำหนดชนิดข้อมูลให้การทดสอบและม็อก; expectTypeOf
- ภาพรวมการกำหนดชนิดข้อมูลการทดสอบ E2E (Playwright/Cypress)