S'il vous plaît, je suis invité à écrire un unitTest pour la page suivante de reactjs.
export default class Collapsible extends React.Component {
static propTypes = {
title: React.PropTypes.string,
children: React.PropTypes.any,
};
render() {
const { title } = this.props;
return (
<details>
<summary>{title}</summary>
{this.props.children}
</details>
);
}
}
Suivant le tut Ici J'ai écrit mon test ci-dessous comme
describe('Collapsible', ()=>{
it('works', ()=>{
let renderer = createRenderer();
renderer.render(<Collapsible title="MyTitle"><span>HEllo</span></Collapsible>);
let actualElement = renderer.getRenderOutput();
let expectedElement = (<details><summary>title</summary>Details</details>);
expect(actualElement).toEqual(expectedElement);
});
});
Cependant, mon test jette l'erreur dans le titre ci-dessus, je soupçonne que mes accessoires sur le Collapsible (c'est-à-dire le titre et les enfants) ne sont pas assignés par le test. S'il vous plaît, comment puis-je aborder cela? Toute aide ou orientation serait hautement appréciée.
Merci pour votre temps à tous. Il s’est avéré que j’importais mal le fichier compressible dans le fichier de test. Voici comment j'importais avant
import React from 'react';
import expect from 'expect';
import {createRenderer} from 'react-addons-test-utils';
import { Collapsible } from '../Collapsible.js';
Après avoir changé pour
import React from 'react';
import expect from 'expect';
import {createRenderer} from 'react-addons-test-utils';
import Collapsible from '../Collapsible';
Cela semble fonctionner. J'importais auparavant Collapsible en tant que variable/objet existant. Après avoir lu la documentation et quelques tutoriels, j'ai réalisé.
Pour les docs , une façon de définir les accessoires avec les classes ES6 est la suivante:
export default class Collapsible extends React.Component {
render() {
const { title } = this.props;
return (
<details>
<summary>{title}</summary>
{this.props.children}
</details>
);
}
}
Collapsible.propTypes = {
title: React.PropTypes.string,
children: React.PropTypes.any,
};