繁体   English   中英

用几个对象遍历数组

[英]iterating over array with several objects

在这里格式化得很好...在堆栈中尝试过但无法正常工作... 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)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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