Skip to content

Commit

Permalink
remove spaces & improve translation
Browse files Browse the repository at this point in the history
  • Loading branch information
mohamedsgap committed Nov 29, 2019
1 parent 6818581 commit 5cdf49b
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions content/docs/testing-environments.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ prev: testing-recipes.html

### منفذي الاختبار {#test-runners}

- يتيح لك منفذى الاختبار مثل [Jest](https://jestjs.io/), [mocha](https://mochajs.org/), [ava](https://github.com/avajs/ava) كتابة مجموعات اختبار على هيئه JavaScript و تشغيلها كجزء من عملية التطوير الخاصة بك. بالاضافة الى ذلك يتم تشغيل مجموعات الاختبار كجزء من التكامل المستمر (CI).
- يتيح لك منفذي الاختبار مثل [Jest](https://jestjs.io/), [mocha](https://mochajs.org/), [ava](https://github.com/avajs/ava) كتابة مجموعات اختبار على هيئه JavaScript و تشغيلها كجزء من عملية التطوير الخاصة بك. بالاضافة الى ذلك يتم تشغيل مجموعات الاختبار كجزء من التكامل المستمر (CI).
- Jest متوافق على نطاق واسع مع مشاريع React, و دعم مميزات جديده مثل [الوحدات النمطية ](#moking-modules)و [العداد](#moking-timers) و دعم [`jsdom`](#mocking-a-rendering-surface`). **اذا كنت تستخدم Create React App اذن [Jest موجود بالفعل](https://facebook.github.io/create-react-app/docs/running-tests) مع تسطيب افتراضي مفيد**.
- المكتبات مثل [mocha](https://mochajs.org/#running-mocha-in-the-browser) تعمل بشكل جيد في بيئات المتصفح الحقيقي ، ويمكن أن تساعد في الاختبارات التي تحتاجها بشكل صريح.
- المكتبات مثل [mocha](https://mochajs.org/#running-mocha-in-the-browser) تعمل بشكل جيد في بيئات المتصفح الحقيقي، ويمكن أن تساعد في الاختبارات التي تحتاجها بشكل صريح.
- تُستخدم اختبارات End-to-End لاختبار تدفقات أطول عبر عدة صفحات، وتتطلب [إعدادات مختلفة](#end-to-end-tests-aka-e2e-tests).

### محاكاة واجهة التصيير {#mocking-a-rendering-surface}

تعمل الاختبارات غالبًا في بيئة دون الوصول إلى واجهة التصيير الحقيقية مثل المتصفح. بالنسبة لهذه البيئات ، نوصي بمحاكاة متصفح باستخدام [`jsdom`](https://github.com/jsdom/jsdom) ، وهو تطبيق متصفح خفيف الوزن يعمل داخل Node.js.
تعمل الاختبارات غالبًا في بيئة دون الوصول إلى واجهة التصيير الحقيقية مثل المتصفح. بالنسبة لهذه البيئات، نوصي بمحاكاة متصفح باستخدام [`jsdom`](https://github.com/jsdom/jsdom) ، وهو تطبيق متصفح خفيف الوزن يعمل داخل Node.js.

في معظم الحالات ، يتصرف jsdom كالمتصفح العادي ، لكن ليس به ميزات مثل [layout و navigation](https://github.com/jsdom/jsdom#unimplemented-parts-of-the-web-platform). لا يزال هذا مفيدًا لمعظم اختبارات المكونات المستندة إلى الويب ، لأنه يعمل بشكل أسرع من إعادة بدء تشغيل متصفح لكل اختبار. يتم تشغيله أيضًا في نفس عملية الاختبارات الخاصة بك ، حتى تتمكن من كتابة التعليمات البرمجية لفحصها وتأكيدها على DOM.

Expand All @@ -28,13 +28,13 @@ prev: testing-recipes.html

إذا كنت تكتب مكتبة تختبر في الغالب السلوك الخاص بالمتصفح ، وتتطلب سلوك المتصفح الأصلي مثل الـ layout أو حقول الإدخال الحقيقية ، يمكنك استخدام إطار عمل مثل [mocha.](https://mochajs.org/)

في بيئة لا يمكنك فيها محاكاة DOM (على سبيل المثال ، اختبار مكونات React Native على Node.js) ، يمكنك استخدام [مساعدي محاكاة الأحداث](https://reactjs.org/docs/test-utils.html#simulate) لمحاكاة التفاعلات مع العناصر. بالتناوب ، يمكنك استخدام `fireEvent` المساعد من <span dir='ltr'>[`@ testing-library / react-native`](https://testing-library.com/docs/native-testing-library)<span>.
في بيئة لا يمكنك فيها محاكاة DOM (على سبيل المثال ، اختبار مكونات React Native على Node.js) ، يمكنك استخدام [مساعدي محاكاة الأحداث](https://reactjs.org/docs/test-utils.html#simulate) لمحاكاة التفاعلات مع العناصر. بالتناوب ، يمكنك استخدام `fireEvent` المساعد من <span dir='ltr'>[`@ testing-library/react-native`](https://testing-library.com/docs/native-testing-library)<span>.

اطارات عمل مثل [Cypress](https://www.cypress.io/) و [puppeteer](https://github.com/GoogleChrome/puppeteer) و [webdriver](https://www.seleniumhq.org/projects / webdriver /) مفيدة لتشغيل [اختيبارات end-to-end](#end-to-end-tests-aka-e2e-tests).
اطارات عمل مثل [Cypress](https://www.cypress.io/) و [puppeteer](https://github.com/GoogleChrome/puppeteer) و [webdriver](https://www.seleniumhq.org/projects/webdriver /) مفيدة لتشغيل [اختيبارات end-to-end](#end-to-end-tests-aka-e2e-tests).

### محاكاة الدوال {#mocking-functions}

عند كتابة الاختبارات ، نود أن نحاكى الكود الخاص بنا الذى لا يحتوى على مُمَاثل له فى بيئة الاختبار الخاصة بنا (على سبيل المثال التحقق من حالة `navigator.onLin` داخل Node.js). يمكن للاختبارات أيضًا التجسس على بعض الدوال، ومراقبة كيفية تفاعل أجزاء أخرى من الاختبار معها. من المفيد عندئذ أن تكون قادرًا على محاكاة هذه الدوال باصدارات سهلة الاستخدام بشكل الانتقائى.
عند كتابة الاختبارات ، نود أن نحاكى الكود الخاص بنا الذى لا يحتوى على مُمَاثل له فى بيئة الاختبار الخاصة بنا (على سبيل المثال التحقق من حالة `navigator.onLin` داخل Node.js). يمكن للاختبارات أيضًا التجسس على بعض الدوال، ومراقبة كيفية تفاعل أجزاء أخرى من الاختبار معها. من المفيد عندئذ أن تكون قادرًا على محاكاة هذه الدوال باصدارات سهلة الاستخدام بشكل الانتقائى.

هذا مفيد بشكل خاص لجلب البيانات. من المفضل عادة استخدام البيانات "المزيفة" للاختبارات لتجنب البطء والضعف بسبب الجلب من نقاط الوصول النهائية لواجهة برمجة التطبيقات الحقيقية. [<small>(مثال) </small>](/docs/testing-recipes.html#data-fetching ). هذا يساعد على جعل الاختبارات يمكن التنبؤ بها. مكتبات مثل [Jest](https://jestjs.io/) و [sinon](https://sinonjs.org/)، من بين أمور أخرى ، تدعم محاكاه الدوال. بالنسبة لاختبارات الـ end-to-end ، يمكن أن تكون محاكاة الشبكة أكثر صعوبة ، ولكن قد ترغب أيضًا في اختبار نقاط الوصول الحقيقية لواجهة برمجة التطبيقات فيها.

Expand All @@ -48,7 +48,7 @@ prev: testing-recipes.html

قد تستخدم المكونات وظائف تستند إلى الوقت مثل `setTimeout` أو` setInterval` أو `Date.now`. في بيئات الاختبار ، قد يكون من المفيد الاستغناء عن هذه الوظائف مع البدائل التي تتيح لك "التقدم" يدويًا. هذا شيء عظيم للتأكد من أن اختباراتك تعمل بسرعة! الاختبارات التي تعتمد على العداد ستظل قائمة بالترتيب ، ولكن أسرع [<small>(مثال)</small>](/docs/testing-recipes.html#timers). معظم اطارات العمل ، بما في ذلك [Jest](https://jestjs.io/docs/en/timer-mocks) ، [sinon](https://sinonjs.org/releases/v7.3.2/fake-timers/) و [lolex](https://github.com/sinonjs/lolex) ، تتيح لك محاكاة العداد في اختباراتك.

في بعض الأحيان ، قد لا ترغب في محاكاة العداد. على سبيل المثال ، ربما تقوم باختبار رسم متحرك ، أو تتفاعل مع نقطة نهاية حساسة للتوقيت (مثل واجهة برمجة التطبيقات من نوع API rate limiter). تتيح لك المكتبات التي بها محاكاه العداد تمكينها وتعطيلها على أساس كل اختبار / مجموعة ، بحيث يمكنك اختيار كيفية تشغيل هذه الاختبارات بشكل صريح.
في بعض الأحيان ، قد لا ترغب في محاكاة العداد. على سبيل المثال ، ربما تقوم باختبار رسم متحرك ، أو تتفاعل مع نقطة نهاية حساسة للتوقيت (مثل واجهة برمجة التطبيقات من نوع API rate limiter). تتيح لك المكتبات التي بها محاكاه العداد تمكينها وتعطيلها على أساس كل اختبار/مجموعة ، بحيث يمكنك اختيار كيفية تشغيل هذه الاختبارات بشكل صريح.

### اختبارات end-to-end {#end-to-end-tests-aka-e2e-tests}

Expand Down

0 comments on commit 5cdf49b

Please sign in to comment.