الفرق بين المراجعتين ل"React/shallow renderer"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (تعديل التصنيفات)
 
(4 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:التصيير السطحي (Shallow Rendering)}}</noinclude>
+
<noinclude>{{DISPLAYTITLE:التصيير السطحي (Shallow Rendering) في React}}</noinclude>
 
 
 
== الاستيراد ==
 
== الاستيراد ==
 
<syntaxhighlight lang="javascript">
 
<syntaxhighlight lang="javascript">
سطر 37: سطر 36:
 
</syntaxhighlight>يمتلك الاختبار السطحي حاليًّا بعض المحدوديات، منها عدم دعم المراجع.
 
</syntaxhighlight>يمتلك الاختبار السطحي حاليًّا بعض المحدوديات، منها عدم دعم المراجع.
  
'''ملاحظة:''' نوصي بالتحقق من واجهة برمجة تطبيق التصيير السطحي التي تُدعى Enzyme. فهي تُزوِّدنا بواجهة برمجة تطبيق ذات مستوى أعلى وأفضل وبنفس الوظيفة.
+
'''ملاحظة:''' نوصي بالتحقق من [http://airbnb.io/enzyme/docs/api/shallow.html واجهة برمجة تطبيق التصيير السطحي] Enzyme. فهي تُزوِّدنا بواجهة برمجة تطبيق ذات مستوى أعلى وأفضل وبنفس الوظيفة.
  
 
== مرجع ==
 
== مرجع ==
سطر 44: سطر 43:
 
بإمكانك التفكير بالتصيير السطحي كمكان لتصيير المكوّن الذي تختبره، والذي منه تستطيع استخراج ناتج المكوّن.
 
بإمكانك التفكير بالتصيير السطحي كمكان لتصيير المكوّن الذي تختبره، والذي منه تستطيع استخراج ناتج المكوّن.
  
إنّ التابع <code>shallowRenderer.render()‎</code> مشابه للتابع <code>ReactDOM.render()</code>‎ ولكنّه لا يتطلّب DOM ويُصيِّر فقط مستوى أدنى وحيد. يعني هذا أنّك تستطيع اختبار المكوّنات بشكل معزول عن مكوّناتها الأبناء.
+
إنّ التابع <code>shallowRenderer.render()‎</code> مشابه للتابع <code>[[React/react dom#render.28.29.E2.80.8E|ReactDOM.render()]]</code>‎ ولكنّه لا يتطلّب DOM ويُصيِّر فقط مستوى أدنى وحيد. يعني هذا أنّك تستطيع اختبار المكوّنات بشكل معزول عن مكوّناتها الأبناء.
  
 
=== <code>shallowRenderer.getRenderOutput()‎</code> ===
 
=== <code>shallowRenderer.getRenderOutput()‎</code> ===
سطر 51: سطر 50:
 
بإمكانك بعدها البدء بتجميع الحقائق حول الناتج.
 
بإمكانك بعدها البدء بتجميع الحقائق حول الناتج.
  
 +
== انظر أيضًا ==
 +
* [[React/react api|واجهة برمجة التطبيق (API) ذات المستوى الأعلى في React]]
 +
* [[React/react component|الصنف React.Component]]
 +
* [[React/react dom|الكائن ReactDOM]]
 +
* [[React/react dom server|الكائن ReactDOMServer]]
 +
* [[React/dom elements|عناصر DOM]]
 +
* [[React/events|الأحداث المصطنعة (Synthetic Events)]]
 +
* [[React/test utils|أدوات الاختبار]]
 +
* [[React/test renderer|مصير الاختبار (Test Renderer)]]
 +
* [[React/javascript environment requirements|متطلبات بيئة JavaScript]]
 
==مصادر==
 
==مصادر==
 
*[https://reactjs.org/docs/shallow-renderer.html صفحة التصيير السطحي في توثيق React الرسمي].
 
*[https://reactjs.org/docs/shallow-renderer.html صفحة التصيير السطحي في توثيق React الرسمي].
 +
[[تصنيف:React]]
 +
[[تصنيف:React API Reference]]

المراجعة الحالية بتاريخ 11:22، 19 مارس 2019

الاستيراد

import ShallowRenderer from 'react-test-renderer/shallow'; // ES6
var ShallowRenderer = require('react-test-renderer/shallow'); // ES5 with npm

لمحة عامة

عند كتابة وحدات اختبار لمكتبة React يكون التصيير السطحي مفيدًا لك. يُتيح لك التصيير السطحي تصيير مكوّن على عمق مستوى واحد وتوضيح الحقائق حول ما يُعيده تابع التصيير، بدون القلق حول سلوك المكوّنات الأبناء والتي لم تُصيَّر أو ينشأ عنها نسخة. لا يحتاج ذلك إلى DOM.

على سبيل المثال إن كان لديك المكوّن التالي:

function MyComponent() {
  return (
    <div>
      <span className="heading">العنوان</span>
      <Subcomponent foo="bar" />
    </div>
  );
}

بإمكانك كتابة ما يلي:

import ShallowRenderer from 'react-test-renderer/shallow';

// في اختبارك:
const renderer = new ShallowRenderer();
renderer.render(<MyComponent />);
const result = renderer.getRenderOutput();

expect(result.type).toBe('div');
expect(result.props.children).toEqual([
  <span className="heading">العنوان</span>,
  <Subcomponent foo="bar" />
]);

يمتلك الاختبار السطحي حاليًّا بعض المحدوديات، منها عدم دعم المراجع.

ملاحظة: نوصي بالتحقق من واجهة برمجة تطبيق التصيير السطحي Enzyme. فهي تُزوِّدنا بواجهة برمجة تطبيق ذات مستوى أعلى وأفضل وبنفس الوظيفة.

مرجع

shallowRenderer.render()‎

بإمكانك التفكير بالتصيير السطحي كمكان لتصيير المكوّن الذي تختبره، والذي منه تستطيع استخراج ناتج المكوّن.

إنّ التابع shallowRenderer.render()‎ مشابه للتابع ReactDOM.render()‎ ولكنّه لا يتطلّب DOM ويُصيِّر فقط مستوى أدنى وحيد. يعني هذا أنّك تستطيع اختبار المكوّنات بشكل معزول عن مكوّناتها الأبناء.

shallowRenderer.getRenderOutput()‎

بعد استدعاء التابع shallowRenderer.render()‎ بإمكانك استخدام التابع shallowRenderer.getRenderOutput()‎ للحصول على الناتج المُصيَّر.

بإمكانك بعدها البدء بتجميع الحقائق حول الناتج.

انظر أيضًا

مصادر