2016-12-05 7 views
0

appの単体テストを記述し、describeブロックの壁に当たる。 、上記のエラーによると酵素モカAssertionError:期待値0〜等しい21

<Search /> should render as many shows as there are data for: 

    AssertionError: expected 0 to equal 21 
    + expected - actual 

    -0 
    +21 

    at Context.<anonymous> (App.spec.js:19:45) 

<div className='shows'> 
    {data.shows 
    .filter((show) => `${show.title} ${show.description}`.toUpperCase().indexOf(this.state.searchTerm.toUpperCase()) >= 0) 
    .map((show, index) => (
     <ShowCard {...show} key={index} id={index} /> 
))} 
</div> 

(wrapper.find(ShowCard).length)(data.shows.length)に等しくなければならないが、それはこのエラーを与えている:

/* eslint-env mocha */ 
const React = require('react') 
const chai = require('chai') 
const { expect } = chai 
const Search = require('../js/Search') 
const ShowCard = require('../js/ShowCard') 
const enzyme = require('enzyme') 
const { shallow } = enzyme 
const data = require('../public/data') 

describe('<Search />',() => { 
    it('should render as many shows as there are data for',() => { 
    const wrapper = shallow(<Search />) 
    expect(wrapper.find(ShowCard).length).to.equal(data.shows.length) 
    console.log(wrapper.debug()) 
    }) 
}) 

検索コンポーネントのコードは次のようにShowCardをレンダリングしています問題は、期待値equal(data.shows.length)で始まりますが、私はそれに何も悪いことは見ません。誰かが私を正しい方向に向けることができますか?

答えて

0

うわー、いかに恥ずかしいですか。私は、検索コンストラクタの入力値が "デフォルトの検索用語"に設定されているので、その文字列が入力から手動で削除されるまで検索結果が表示されないようにしました。

空の文字列に置き換えて問題を解決しました。すべてのテストが終了します。

関連する問題