أواصل كتابة بعض الاختبارات ، باتباع هذه الوثائق وأيضًا هذه المشكلة https://github.com/react-dnd/react-dnd/issues/453
المشكلة التي لدي تتعلق بتقديم الاختبار.
يمكنني الحصول على المثال الذي يوفره التوثيق للعمل ، وتغليف المكون في DragDropContext وعرضه بـ TestUtils.renderIntoDocument
.
سيؤدي هذا إلى إرجاع كائن DragDropContextContainer
.
ومع ذلك ، إذا حاولت استخدام طريقة Enyzme mount
لتصيير الكائن ، فإنه يعيد كائن $$typeof: Symbol(react.element)
- والذي لن يسمح لي بالحصول على المدير.
أفضل استخدام الإنزيم - لأن هذا هو ما أستخدمه في اختباراتي في مكان آخر.
أي شخص حصل على أي مساعدة في هذا؟
لقد حصلت للتو على هذا العمل ، هذا ما يبدو عليه. في الكتابة المطبوعة.
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
تم وضع علامة على هذه المشكلة تلقائيًا على أنها قديمة نظرًا لعدم وجود نشاط حديث لها. سيتم إغلاقه إذا لم يحدث أي نشاط آخر. شكرا لمساهماتكم.
التعليق الأكثر فائدة
ركض في نفس المشكلة. يمكنني ، وأتوقع أنك يجب أن تكون قادرًا على إصلاحه باستخدام طريقة
wrapper.instance()
. موصوف هنا أيضًا https://github.com/react-dnd/react-dnd/issues/488.على سبيل المثال
بالإضافة إلى ذلك ، كنت بحاجة أيضًا إلى الحصول على مثيلات المكونات الفرعية لاستدعاء
getHandlerId()
.إذا كان ذلك مفيدًا ، فإليك أحد ملفات الاختبار الخاصة بي: https://gist.github.com/gilleswittenberg/142fe49e1115b5a1936562b2284e1ab7