Come si fa a testare una classe astratta in Enzyme e / o passare variabili implicite?

voti
0

Ho una classe di base che viene esteso da più componenti, e all'interno di quella classe di base, c'è una variabile implicita che si passa dalla classi che stanno estendendo esso. Per esempio, ho il seguente come classe di base:

export default class BaseCard extends React.Component {

  constructor(props, context) {
    super(props, context);
  }

  render() {
    return (
      <div>
        {this.hasData && <span> Has Content </span>}
      </div>);
  }
}

E la componente che estende il BaseCard:

export default class MyCard extends BaseCard {

    constructor(props) {
        super(props);
        this.hasData = true;
    }

    render() {
      return (
        <div>
          MyCard content
        </div>);
    }
}

this.hasDatadefinita all'interno del MyCardcomponente, ma siccome sono prove BaseCard, non è definito all'interno della classe, e quindi non posso testare parti del DOM che dipendono da quella variabile essere lì. Come posso passarlo in durante il test con l'enzima?

È pubblicato 16/08/2016 alle 19:18
fonte dall'utente
In altre lingue...                            


1 risposte

voti
0

È possibile impostare la variabile per l'istanza in questo modo:

const wrapper = mount(<MyCard />);
wrapper.instance().hasData = true;
Risposto il 27/09/2016 a 11:37
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more