Ich habe einige Schwierigkeiten beim Testen von Komponenten, die React-Bootstrap mit Mocha, Chai und Enzym verwenden. Hoffentlich kann jemand mich in das einstecken, was ich falsch mache.Probleme Test React-Bootstrap-Komponenten
Beim Testen von Komponenten, die nicht React-Bootstrap verwenden, bemerke ich, dass die Ausgabe hwtml() ist, wobei ich beim Testen von React-Bootstrap nur die Komponente und nicht raw html() zurückbekomme. Dies verursacht beim Testen große Kopfschmerzen. Dies passiert, wenn ich shallow, mount und render verwende.
Wenn jemand eine Ahnung hat, warum ich nicht raw HTML beim Testen bekommen kann, würde sehr geschätzt werden! Ich habe einen Code eingefügt, um zu zeigen, worüber ich spreche.
ReactTest.jsx
import React from 'react';
const ReactTest =() => (
<div>
<button>ReactTest</button>
</div>
);
export default ReactTest;
ReactBootstrapTest.jsx
import React from 'react';
import { Button } from 'react-bootstrap';
const ReactBootstrapTest =() => (
<div>
<Button>ReactBootstrapTest</Button>
</div>
);
export default ReactBootstrapTest;
reactTest.js
import React from 'react';
import { expect } from 'chai';
import { shallow } from 'enzyme';
import ReactTest from '../../../../../../components/ReactTest';
import ReactBootstrapTest from '../../../../../../components/ReactBootstrapTest';
const reactTestEnzymeWrapper =() => (
shallow(<ReactTest />)
);
const reactBootstrapTestEnzymeWrapper =() => (
shallow(<ReactBootstrapTest />)
);
describe.only('ReactTest',() => {
it('should output debug',() => {
const reactTest = reactTestEnzymeWrapper();
console.log('ReactTest', reactTest.debug());
});
it('should find the <button>',() => {
const reactButton = reactTestEnzymeWrapper().find('button');
expect(reactButton.at(0).text()).to.equal('ReactTest');
});
});
describe.only('ReactBootstrapTest',() => {
it('should output debug',() => {
const reactBootstrapTest = reactBootstrapTestEnzymeWrapper();
console.log('ReactBootstrapTest', reactBootstrapTest.debug());
});
it('should find the <button>',() => {
const bootstrapButton = reactBootstrapTestEnzymeWrapper().find('button');
expect(bootstrapButton.at(0).text()).to.equal('ReactBoostrapTest');
});
})
Können Sie die tatsächliche Ausgabe von den Tests veröffentlichen? –