2016-11-03 9 views
0

HTMLタグ<Tr></Tr>をテストしようとしています。ここに私のコードは次のとおりです。ここチャイ他のコンポーネント内のコンポーネントのタイプをテストする

const children = (<h1>Test</h1>); 
    const renderComponent =() => shallow(
     <Table> 
     <Tr> 
      {children} 
     </Tr> 
     </Table> 
    ); 


    describe("<Tr />",() => { 
     it("should render a <Tr> tag within a <Table> tag",() => { 
     const renderedComponent = renderComponent(); 
     expect(renderedComponent.type()).toEqual("tr"); 
     }); 
    }); 

問題は、私のテストはrenderedComponentのタイプとしてタグ<Table>をターゲットにし、したがって、失敗したテストを返すということです。

expectテストでは、最初の<Table>ではなく、2番目のタグ<Tr>が見つかるようにテストを変更するにはどうすればよいですか?

は注:私はのJsとして、CSSが含まれているコンポーネントを反応させるの最も基本的にHTMLタグを変換するために私を可能にしますスタイルの成分という名前の新しいライブラリを使用しています

import styled from "styled-components"; 

    const Table = styled.table` 
     border: 1px solid black; 
     border-collapse: collapse; 
     width: 100% 
    `; 

    export default Table; 

したがって、私のコンポーネントは独自のタグに限定されており、まだ何も含まれていません。

答えて

0

大文字の場合TableTrの場合はJSX compiler expects to have such component definedです。 HTMLタグには小文字を使用してください。私にとって

この作品:

const children = (<h1>Test</h1>); 
const renderComponent =() => shallowWithIntl(
    <table> 
     <tr> 
      {children} 
     </tr> 
    </table> 
); 


describe('<Tr />',() => { 
    it('should render a <Tr> tag ',() => { 
     const renderedComponent = renderComponent(); 
     expect(renderedComponent.type()).to.equal('table'); 
    }); 

    it('should have children',() => { 
     const renderedComponent = renderComponent(); 
     expect(renderedComponent.contains(children)).to.equal(true); 
    }); 
}); 
+0

ちょっと申し訳ありませんが、私は私の説明に十分な正確されていない必要があります。私はReactコンポーネントを作成しています。そのため、HTMLタグは大文字で始まります。また、私の最初のテストでは、 'renderedComponent.type()).toqual( 'tr');ではなく' renderedComponent.type()).toqual( 'table'); ' –

+0

'Table'と' Tr'コンポーネントの内容を貼り付けてください。これについて: 'table'と' tr':この文をどのように理解すればいいのか分かりません: 'しかし、今は明らかに間違っている最初のタグをテストします。'私はあなたがしようとしていることを推測しました。 – luboskrnac

+0

申し訳ありませんが、私はコード化することを勉強しているので、正確に私の質問をすることができます。 Chaiテスト(最初のit())でTrタグをテストする必要があります。第2のHTMLタグを 'renderedComponent'の' Tr'でターゲットにして、それが

内に存在するかどうかをテストしたいと思います。また、私は自分のテスト記述を 'タグで
タグにするとかなり明確になります 'というようにテスト記述を変更すると思います-_- –

関連する問題