简体   繁体   中英

iterating over array with several objects

formatted here well...tried in stack but not working that great... https://gist.github.com/js08/22654f6cd2f160aa2e0a

  • i am new to mocha testing..
  • right now its working with a single object in an array.
  • how to make it work with multiple objects in an array.
  • i am not sure how to iterate it
  • providing my code below
  • single objects in an array:

     shallowRenderer.render(<SportsList disclosures ={[ 'id': 'foo', 'text': 'car racing' ]} />); 
  • multiple objects in an array:


shallowRenderer.render(<SportsList  disclosures ={[ {id: 100, text: 'car racing'}, {id: 10, text: 'hello vworld'}, {id: 100, text: 'car racing'} ]} />);

import {expect} from 'chai';
import React from 'react';
import TestUtils from 'react-addons-test-utils';
import SportsList from '../../src/components/footer/disclosure-list.jsx';
import initializeJsDom from '../test-utils/dom.js';
import {getGridLayoutClasses} from 'sports-css-grids';


describe('shallow renderer tests for disclosure-list ', function() {
    let shallowRenderer = TestUtils.createRenderer();


    it('should render correctly', () => {

        shallowRenderer.render(<SportsList  disclosures ={[ {id: 100, text: 'car racing'}, {id: 10, text: 'hello vworld'}, {id: 100, text: 'car racing'} ]} />);
        //shallowRenderer.render(<SportsList  disclosures ={[ 'id': 'foo', 'text': 'car racing' ]} />);
        let sportsOutputElement = shallowRenderer.getRenderOutput();

        let sportsTitle = sportsOutputElement.props.children[0].key;

        let text = sportsOutputElement.props.children[0].props.dangerouslySetInnerHTML.__html;

       //result succeful for single value 
        expect(sportsTitle).equal('100');
       //result succeful for single value
        expect(text).equal('car racing');
    });



 });

json structure
renderedElement - multiple arrays-- -- > 

{
  "type": "div",
  "key": null,
  "ref": null,
  "props": {
    "className": "pageFooter-disclosures",
    "children": [{
      "type": "p",
      "key": "100",
      "ref": null,
      "props": {
        "dangerouslySetInnerHTML": {
          "__html": "hello world"
        }
      },
      "_owner": null,
      "_store": {}
    }, {
      "type": "p",
      "key": "10",
      "ref": null,
      "props": {
        "dangerouslySetInnerHTML": {
          "__html": "hello vworld"
        }
      },
      "_owner": null,
      "_store": {}
    }, {
      "type": "p",
      "key": "100",
      "ref": null,
      "props": {
        "dangerouslySetInnerHTML": {
          "__html": "hello world"
        }
      },
      "_owner": null,
      "_store": {}
    }]
  },
  "_owner": null,
  "_store": {}
}√
should render correctly(3 ms)

通过chai expect ,您可以使用eql来测试对象的深度相等性

expect(sportsOutputElement.props.children).to.eql([ {id: 100, text: 'car racing'}, {id: 10, text: 'hello vworld'}, {id: 100, text: 'car racing'} ]);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM