📋 محتويات الصفحة
📖 الوصف
Cypress هو إطار اختبار End-to-End حديث كتب بـ JavaScript، مصمم خصيصاً لتطبيقات الويب الحديثة. يعمل Cypress داخل المتصفح مباشرة، مما يوفر تجربة اختبار سريعة وسهلة التحديد. يدعم Cypress: Time-travel debugging، Automatic waiting، Network traffic control، Screenshots و Videos للاختبارات الفاشلة. يُعد م...
🎯 يستخدم في
مجالات استخدام هذه الأداة
End-to-End Testing
Integration Testing
Component Testing
Regression Testing
Visual Testing
✨ المميزات
أبرز مميزات هذه الأداة
Easy Time Travel debugging
Easy Auto Wait
Easy Network Control
easy screenshots/videos
Easy Dashboard Cloud
easy Parallel execution
easy Interactive Runner
⚠️ العيوب
نقاط يجب مراعاتها
بطيء مع اختبارات طويلة
لا يدعم Tabs
لا يدعم iframe متعددة
محدود في Cross-domain
💻 مثال على الاستخدام
كيفية استخدام هذه الأداة
// cypress/e2e/login.cy.js
describe('Login Flow', () => {
beforeEach(() => {
cy.visit('http://localhost:3000/login')
})
it('displays login error on wrong credentials', () => {
cy.get('[data-testid="email"]').type('invalid@example.com')
cy.get('[data-testid="password"]').type('wrongpass')
cy.get('[data-testid="submit"]').click()
cy.get('[data-testid="error-message"]')
.should('be.visible')
.and('contain', 'Invalid credentials')
})
it('logs in successfully', () => {
cy.intercept('POST', '/api/login', {
statusCode: 200,
body: { token: 'fake-token', user: { name: 'John' } }
}).as('login')
cy.get('[data-testid="email"]').type('john@example.com')
cy.get('[data-testid="password"]').type('password123')
cy.get('[data-testid="submit"]').click()
cy.wait('@login')
cy.url().should('include', '/dashboard')
})
})
📚 أدوات أخرى في Testing
قد يعجبك أيضاً