React-dnd: Menguji dengan Enzim daripada Bereaksi TestUtils

Dibuat pada 26 Nov 2017  ·  3Komentar  ·  Sumber: react-dnd/react-dnd

Saya mulai menulis beberapa tes, mengikuti dokumentasi ini dan juga masalah ini https://github.com/react-dnd/react-dnd/issues/453

Masalah yang saya miliki adalah mengenai rendering tes.

Saya bisa mendapatkan contoh bahwa dokumentasi berfungsi, membungkus komponen dalam DragDropContext dan merendernya dengan TestUtils.renderIntoDocument .

Ini akan mengembalikan objek DragDropContextContainer .

Namun, jika saya mencoba menggunakan metode Enyzme mount untuk merender objek, ia mengembalikan objek $$typeof: Symbol(react.element) - yang tidak mengizinkan saya mendapatkan manajer.

Saya lebih suka menggunakan Enzim - karena itulah yang saya gunakan untuk pengujian saya di tempat lain.

Adakah yang mendapat bantuan dengan ini?

wontfix

Komentar yang paling membantu

Berlari ke masalah yang sama ini. Saya bisa, dan berharap Anda bisa, memperbaikinya menggunakan metode wrapper.instance() . Juga dijelaskan di sini https://github.com/react-dnd/react-dnd/issues/488.

misalnya

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

Selain itu, saya juga perlu mendapatkan instance komponen anak untuk dipanggil getHandlerId() .

Jika membantu, ini salah satu file pengujian saya: https://Gist.github.com/gilleswittenberg/142fe49e1115b5a1936562b2284e1ab7

Semua 3 komentar

Saya baru saja berhasil, inilah tampilannya. dalam naskah.

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

Berlari ke masalah yang sama ini. Saya bisa, dan berharap Anda bisa, memperbaikinya menggunakan metode wrapper.instance() . Juga dijelaskan di sini https://github.com/react-dnd/react-dnd/issues/488.

misalnya

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

Selain itu, saya juga perlu mendapatkan instance komponen anak untuk dipanggil getHandlerId() .

Jika membantu, ini salah satu file pengujian saya: https://Gist.github.com/gilleswittenberg/142fe49e1115b5a1936562b2284e1ab7

Masalah ini secara otomatis ditandai sebagai basi karena tidak ada aktivitas terbaru. Ini akan ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Terima kasih atas kontribusi Anda.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat