перебирая массив с несколькими объектами

0

отформатирован здесь хорошо... пробовал в стеке, но не работал так хорошо... https://gist.github.com/js08/22654f6cd2f160aa2e0a

  • Я новичок в тестировании мокки..
  • прямо сейчас работает с одним объектом в массиве.
  • как заставить его работать с несколькими объектами в массиве.
  • я не уверен, как его повторить
  • предоставление моего кода ниже
  • одиночные объекты в массиве:

    shallowRenderer.render(<SportsList  disclosures ={[ 'id': 'foo', 'text': 'car racing' ]} />);
    
  • несколько объектов в массиве:


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)
Теги:
mocha

1 ответ

0

С expect от chai вы можете использовать EQL, который будет проверять объекты для глубокого равенства

expect(sportsOutputElement.props.children).to.eql([ {id: 100, text: 'car racing'}, {id: 10, text: 'hello vworld'}, {id: 100, text: 'car racing'} ]);
  • 0
    спасибо за ваше сообщение ... вы можете обновить в моем коде ... это сбивает с толку
  • 0
    замените четыре строки в вашем коде, начиная с //result successfull for single value строкой выше
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню