Atteso false per essere vero quando prova reagire componente di gelsomino jsdom e l'enzima

voti
0

Quando ho eseguito il gelsomino come un compito sorso, il test sembra corre bene, anche se prima è sempre considerato fallito. Non sono sicuro dove sia il problema.

reagire Componente

import React, { PropTypes } from 'react';

const propTypes = {};

const defaultProps = {};

class Foo extends React.Component {
  constructor(props) {
    super(props);
  }

  render() {
    return (
      <div className=foo> </div>
    );
  }
}

Foo.propTypes = propTypes;
Foo.defaultProps = defaultProps;

export default Foo;

File Spec

import React from 'react';
import { shallow, mount, render } from 'enzyme';
import Foo from './foo.react';
import jsDom from 'jsdom';

global.document = jsDom.jsdom('');
global.window = document.defaultView;
Object.keys(document.defaultView).forEach((property) => {
  if (typeof global[property] === 'undefined') {
    global[property] = document.defaultView[property];
  }
});

global.navigator = {
  userAgent: 'node.js'
};


describe(A suite, function() {
  it(contains spec with an expectation, function() {
    console.log(shallow(<Foo />));
    expect(shallow(<Foo />).contains(<div className=foo />)).toBe(true);//.toBe(true)
  });

  it(contains spec with an expectation, function() {
    expect(shallow(<Foo />).is('.foo')).toBe(true);
  });

  it(contains spec with an expectation, function() {
    expect(mount(<Foo />).find('.foo').length).toBe(1);
  });
});

Risultato

entrare

È pubblicato 21/10/2016 alle 17:13
fonte dall'utente
In altre lingue...                            


2 risposte

voti
0

Credo che il problema può essere nello spazio bianco che avete in <div className="foo"> </div>

containsverifica una corrispondenza esatta, e un tag vuoto è diverso da quello della stessa etichetta contenente un caratteri spazio. Si veda anche la discussione di una possibile soluzione che coinvolgeelem.html()

Risposto il 21/10/2016 a 20:34
fonte dall'utente

voti
0

Scoperto Devo cambiare il mio ritorno al <div className="foo" />posto di<div className="foo"> </div>

Quindi il test passerà.

ancora non capisco perché sono diversi ancora però.

Risposto il 21/10/2016 a 18:54
fonte dall'utente

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