You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/docs/testing-environments.md
+7-7Lines changed: 7 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -11,14 +11,14 @@ prev: testing-recipes.html
11
11
12
12
### منفذي الاختبار {#test-runners}
13
13
14
-
- يتيح لك منفذى الاختبار مثل[Jest](https://jestjs.io/), [mocha](https://mochajs.org/), [ava](https://github.com/avajs/ava) كتابة مجموعات اختبار على هيئه JavaScript و تشغيلها كجزء من عملية التطوير الخاصة بك. بالاضافة الى ذلك يتم تشغيل مجموعات الاختبار كجزء من التكامل المستمر (CI).
14
+
- يتيح لك منفذي الاختبار مثل [Jest](https://jestjs.io/), [mocha](https://mochajs.org/), [ava](https://github.com/avajs/ava) كتابة مجموعات اختبار على هيئه JavaScript و تشغيلها كجزء من عملية التطوير الخاصة بك. بالاضافة الى ذلك يتم تشغيل مجموعات الاختبار كجزء من التكامل المستمر (CI).
15
15
- 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) مع تسطيب افتراضي مفيد**.
16
-
- المكتبات مثل [mocha](https://mochajs.org/#running-mocha-in-the-browser) تعمل بشكل جيد في بيئات المتصفح الحقيقي، ويمكن أن تساعد في الاختبارات التي تحتاجها بشكل صريح.
16
+
- المكتبات مثل [mocha](https://mochajs.org/#running-mocha-in-the-browser) تعمل بشكل جيد في بيئات المتصفح الحقيقي، ويمكن أن تساعد في الاختبارات التي تحتاجها بشكل صريح.
17
17
- تُستخدم اختبارات End-to-End لاختبار تدفقات أطول عبر عدة صفحات، وتتطلب [إعدادات مختلفة](#end-to-end-tests-aka-e2e-tests).
تعمل الاختبارات غالبًا في بيئة دون الوصول إلى واجهة التصيير الحقيقية مثل المتصفح. بالنسبة لهذه البيئات، نوصي بمحاكاة متصفح باستخدام [`jsdom`](https://github.com/jsdom/jsdom) ، وهو تطبيق متصفح خفيف الوزن يعمل داخل Node.js.
21
+
تعمل الاختبارات غالبًا في بيئة دون الوصول إلى واجهة التصيير الحقيقية مثل المتصفح. بالنسبة لهذه البيئات، نوصي بمحاكاة متصفح باستخدام [`jsdom`](https://github.com/jsdom/jsdom) ، وهو تطبيق متصفح خفيف الوزن يعمل داخل Node.js.
22
22
23
23
في معظم الحالات ، يتصرف jsdom كالمتصفح العادي ، لكن ليس به ميزات مثل [layout و navigation](https://github.com/jsdom/jsdom#unimplemented-parts-of-the-web-platform). لا يزال هذا مفيدًا لمعظم اختبارات المكونات المستندة إلى الويب ، لأنه يعمل بشكل أسرع من إعادة بدء تشغيل متصفح لكل اختبار. يتم تشغيله أيضًا في نفس عملية الاختبارات الخاصة بك ، حتى تتمكن من كتابة التعليمات البرمجية لفحصها وتأكيدها على DOM.
24
24
@@ -28,13 +28,13 @@ prev: testing-recipes.html
28
28
29
29
إذا كنت تكتب مكتبة تختبر في الغالب السلوك الخاص بالمتصفح ، وتتطلب سلوك المتصفح الأصلي مثل الـ layout أو حقول الإدخال الحقيقية ، يمكنك استخدام إطار عمل مثل [mocha.](https://mochajs.org/)
30
30
31
-
في بيئة لا يمكنك فيها محاكاة DOM (على سبيل المثال ، اختبار مكونات React Native على Node.js) ، يمكنك استخدام [مساعدي محاكاة الأحداث](https://reactjs.org/docs/test-utils.html#simulate) لمحاكاة التفاعلات مع العناصر. بالتناوب ، يمكنك استخدام `fireEvent` المساعد من <spandir='ltr'>[`@ testing-library / react-native`](https://testing-library.com/docs/native-testing-library)<span>.
31
+
في بيئة لا يمكنك فيها محاكاة DOM (على سبيل المثال ، اختبار مكونات React Native على Node.js) ، يمكنك استخدام [مساعدي محاكاة الأحداث](https://reactjs.org/docs/test-utils.html#simulate) لمحاكاة التفاعلات مع العناصر. بالتناوب ، يمكنك استخدام `fireEvent` المساعد من <spandir='ltr'>[`@ testing-library/react-native`](https://testing-library.com/docs/native-testing-library)<span>.
32
32
33
-
اطارات عمل مثل [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).
33
+
اطارات عمل مثل [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).
34
34
35
35
### محاكاة الدوال {#mocking-functions}
36
36
37
-
عند كتابة الاختبارات ، نود أن نحاكى الكود الخاص بنا الذى لا يحتوى على مُمَاثل له فى بيئة الاختبار الخاصة بنا (على سبيل المثال التحقق من حالة `navigator.onLin` داخل Node.js). يمكن للاختبارات أيضًا التجسس على بعض الدوال، ومراقبة كيفية تفاعل أجزاء أخرى من الاختبار معها. من المفيد عندئذ أن تكون قادرًا على محاكاة هذه الدوال باصدارات سهلة الاستخدام بشكل الانتقائى.
37
+
عند كتابة الاختبارات ، نود أن نحاكى الكود الخاص بنا الذى لا يحتوى على مُمَاثل له فى بيئة الاختبار الخاصة بنا (على سبيل المثال التحقق من حالة `navigator.onLin` داخل Node.js). يمكن للاختبارات أيضًا التجسس على بعض الدوال، ومراقبة كيفية تفاعل أجزاء أخرى من الاختبار معها. من المفيد عندئذ أن تكون قادرًا على محاكاة هذه الدوال باصدارات سهلة الاستخدام بشكل الانتقائى.
38
38
39
39
هذا مفيد بشكل خاص لجلب البيانات. من المفضل عادة استخدام البيانات "المزيفة" للاختبارات لتجنب البطء والضعف بسبب الجلب من نقاط الوصول النهائية لواجهة برمجة التطبيقات الحقيقية. [<small>(مثال) </small>](/docs/testing-recipes.html#data-fetching). هذا يساعد على جعل الاختبارات يمكن التنبؤ بها. مكتبات مثل [Jest](https://jestjs.io/) و [sinon](https://sinonjs.org/)، من بين أمور أخرى ، تدعم محاكاه الدوال. بالنسبة لاختبارات الـ end-to-end ، يمكن أن تكون محاكاة الشبكة أكثر صعوبة ، ولكن قد ترغب أيضًا في اختبار نقاط الوصول الحقيقية لواجهة برمجة التطبيقات فيها.
40
40
@@ -48,7 +48,7 @@ prev: testing-recipes.html
48
48
49
49
قد تستخدم المكونات وظائف تستند إلى الوقت مثل `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) ، تتيح لك محاكاة العداد في اختباراتك.
50
50
51
-
في بعض الأحيان ، قد لا ترغب في محاكاة العداد. على سبيل المثال ، ربما تقوم باختبار رسم متحرك ، أو تتفاعل مع نقطة نهاية حساسة للتوقيت (مثل واجهة برمجة التطبيقات من نوع API rate limiter). تتيح لك المكتبات التي بها محاكاه العداد تمكينها وتعطيلها على أساس كل اختبار / مجموعة ، بحيث يمكنك اختيار كيفية تشغيل هذه الاختبارات بشكل صريح.
51
+
في بعض الأحيان ، قد لا ترغب في محاكاة العداد. على سبيل المثال ، ربما تقوم باختبار رسم متحرك ، أو تتفاعل مع نقطة نهاية حساسة للتوقيت (مثل واجهة برمجة التطبيقات من نوع API rate limiter). تتيح لك المكتبات التي بها محاكاه العداد تمكينها وتعطيلها على أساس كل اختبار/مجموعة ، بحيث يمكنك اختيار كيفية تشغيل هذه الاختبارات بشكل صريح.
0 commit comments