React-dnd: الاختبار باستخدام الإنزيم بدلاً من اختبار التفاعل

تم إنشاؤها على ٢٦ نوفمبر ٢٠١٧  ·  3تعليقات  ·  مصدر: react-dnd/react-dnd

أواصل كتابة بعض الاختبارات ، باتباع هذه الوثائق وأيضًا هذه المشكلة https://github.com/react-dnd/react-dnd/issues/453

المشكلة التي لدي تتعلق بتقديم الاختبار.

يمكنني الحصول على المثال الذي يوفره التوثيق للعمل ، وتغليف المكون في DragDropContext وعرضه بـ TestUtils.renderIntoDocument .

سيؤدي هذا إلى إرجاع كائن DragDropContextContainer .

ومع ذلك ، إذا حاولت استخدام طريقة Enyzme mount لتصيير الكائن ، فإنه يعيد كائن $$typeof: Symbol(react.element) - والذي لن يسمح لي بالحصول على المدير.

أفضل استخدام الإنزيم - لأن هذا هو ما أستخدمه في اختباراتي في مكان آخر.

أي شخص حصل على أي مساعدة في هذا؟

wontfix

التعليق الأكثر فائدة

ركض في نفس المشكلة. يمكنني ، وأتوقع أنك يجب أن تكون قادرًا على إصلاحه باستخدام طريقة wrapper.instance() . موصوف هنا أيضًا https://github.com/react-dnd/react-dnd/issues/488.

على سبيل المثال

const Context = wrapInTestContext(Component)
const wrapper = mount(<Context />)
const manager = wrapper.instance().getManager()
const backend = manager.getBackend()

بالإضافة إلى ذلك ، كنت بحاجة أيضًا إلى الحصول على مثيلات المكونات الفرعية لاستدعاء getHandlerId() .

إذا كان ذلك مفيدًا ، فإليك أحد ملفات الاختبار الخاصة بي: https://gist.github.com/gilleswittenberg/142fe49e1115b5a1936562b2284e1ab7

ال 3 كومينتر

لقد حصلت للتو على هذا العمل ، هذا ما يبدو عليه. في الكتابة المطبوعة.

import { ThingIAmTesting } from '../file/where/it/lives';
describe('It is a test!', () => {
  let props;
  let component;
  const getComponent = () => {
    let OriginalComponent = (ThingIAmTesting as any).DecoratedComponent;
    let identity = el => el;
    if (!component) {
      component = Enzyme.shallow(
        <OriginalComponent {...props} connectDragSource={identity} />
       );
      return component
    }

    beforeEach (() => {
      props = {
         prop: 'stuff',
         }
      component = undefined;
     })
    it('should render', () => {
      let component = getComponent();
      expect(component).toMatchSnapshot();
    });
})

ركض في نفس المشكلة. يمكنني ، وأتوقع أنك يجب أن تكون قادرًا على إصلاحه باستخدام طريقة wrapper.instance() . موصوف هنا أيضًا https://github.com/react-dnd/react-dnd/issues/488.

على سبيل المثال

const Context = wrapInTestContext(Component)
const wrapper = mount(<Context />)
const manager = wrapper.instance().getManager()
const backend = manager.getBackend()

بالإضافة إلى ذلك ، كنت بحاجة أيضًا إلى الحصول على مثيلات المكونات الفرعية لاستدعاء getHandlerId() .

إذا كان ذلك مفيدًا ، فإليك أحد ملفات الاختبار الخاصة بي: https://gist.github.com/gilleswittenberg/142fe49e1115b5a1936562b2284e1ab7

تم وضع علامة على هذه المشكلة تلقائيًا على أنها قديمة نظرًا لعدم وجود نشاط حديث لها. سيتم إغلاقه إذا لم يحدث أي نشاط آخر. شكرا لمساهماتكم.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات