React-dnd: Prueba con Enzyme en lugar de React TestUtils

Creado en 26 nov. 2017  ·  3Comentarios  ·  Fuente: react-dnd/react-dnd

Estoy escribiendo algunas pruebas, siguiendo esta documentación y también este problema https://github.com/react-dnd/react-dnd/issues/453

El problema que tengo es con respecto a la representación de prueba.

Puedo obtener el ejemplo de que la documentación funciona, envolviendo el componente en un DragDropContext y renderizándolo con TestUtils.renderIntoDocument .

Esto devolverá un objeto DragDropContextContainer .

Sin embargo, si intento usar el método Enyzme mount para representar el objeto, devuelve un objeto $$typeof: Symbol(react.element) , que no me permitirá obtener el administrador.

Preferiría usar Enzyme, ya que eso es lo que estoy usando para mis pruebas en otros lugares.

¿Alguien recibió ayuda con esto?

wontfix

Comentario más útil

Me encontré con este mismo problema. Podría, y espero que usted pueda, arreglarlo usando el método wrapper.instance() . También se describe aquí https://github.com/react-dnd/react-dnd/issues/488.

p.ej

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

Además, también necesitaba obtener las instancias de los componentes secundarios para llamar a getHandlerId() .

Si ayuda, aquí está uno de mis archivos de prueba: https://gist.github.com/gilleswittenberg/142fe49e1115b5a1936562b2284e1ab7

Todos 3 comentarios

Acabo de hacer que esto funcione, así es como se ve. en mecanografiado.

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();
    });
})

Me encontré con este mismo problema. Podría, y espero que usted pueda, arreglarlo usando el método wrapper.instance() . También se describe aquí https://github.com/react-dnd/react-dnd/issues/488.

p.ej

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

Además, también necesitaba obtener las instancias de los componentes secundarios para llamar a getHandlerId() .

Si ayuda, aquí está uno de mis archivos de prueba: https://gist.github.com/gilleswittenberg/142fe49e1115b5a1936562b2284e1ab7

Este problema se ha marcado automáticamente como obsoleto porque no ha tenido actividad reciente. Se cerrará si no se produce más actividad. Gracias por sus aportaciones.

¿Fue útil esta página
0 / 5 - 0 calificaciones