Je commence à écrire quelques tests, en suivant cette documentation et aussi ce problème https://github.com/react-dnd/react-dnd/issues/453
Le problème que j'ai est en ce qui concerne le rendu du test.
Je peux obtenir l'exemple donné par la documentation, en enveloppant le composant dans un DragDropContext et en le restituant avec TestUtils.renderIntoDocument
.
Cela renverra un objet DragDropContextContainer
.
Cependant, si j'essaie d'utiliser la méthode Enyzme mount
pour rendre l'objet, elle renvoie un objet $$typeof: Symbol(react.element)
- qui ne me permet pas d'obtenir le gestionnaire.
Je préférerais utiliser Enzyme - car c'est ce que j'utilise pour mes tests ailleurs.
Quelqu'un a-t-il de l'aide pour cela?
Je viens de le faire fonctionner, voici à quoi cela ressemble. en tapuscrit.
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();
});
})
A couru dans ce même problème. Je pourrais, et je m'attends à ce que vous puissiez le réparer en utilisant la méthode wrapper.instance()
. Également décrit ici https://github.com/react-dnd/react-dnd/issues/488.
par exemple
const Context = wrapInTestContext(Component)
const wrapper = mount(<Context />)
const manager = wrapper.instance().getManager()
const backend = manager.getBackend()
De plus, je devais également faire en sorte que les instances des composants enfants appellent getHandlerId()
.
Si ça peut aider, voici un de mes fichiers de test : https://gist.github.com/gilleswittenberg/142fe49e1115b5a1936562b2284e1ab7
Ce problème a été automatiquement marqué comme obsolète car il n'a pas eu d'activité récente. Il sera fermé si aucune autre activité ne se produit. Merci pour vos contributions.
Commentaire le plus utile
A couru dans ce même problème. Je pourrais, et je m'attends à ce que vous puissiez le réparer en utilisant la méthode
wrapper.instance()
. Également décrit ici https://github.com/react-dnd/react-dnd/issues/488.par exemple
De plus, je devais également faire en sorte que les instances des composants enfants appellent
getHandlerId()
.Si ça peut aider, voici un de mes fichiers de test : https://gist.github.com/gilleswittenberg/142fe49e1115b5a1936562b2284e1ab7