2016-10-27 10 views
2

私は反応して冗談を言っています。私はどこでもテストを探していますが、参考になるものは何も見つかりません。これは部分的なことですが、私はとても新しいので、どこから始めるべきか分かりません。だから私と一緒に、ご負担ください。反応性暴露試験onサブプライム

私はその中にボタンが付いたフォームをレンダリングするカートに追加ファイルを持っています。ボタンは別のコンポーネントなので、私はそれをテストするつもりはありません。フォームのonSubmit関数をテストする必要があります。何かご意見は?参考資料ですか?私はこのエラーを取得してい

describe('AddToCart',() => { 
    const React = require('react'); 
    const BaseRenderer = require('react/lib/ReactTestUtils'); 
    const Renderer = BaseRenderer.createRenderer(); 
    const ReactTestUtils = require('react-addons-test-utils'); 
    const AddToCart = require('../index.js').BaseAddToCart; 

    it('Will Submit',() => { 
    formInstance = ReactTestUtils.renderIntoDocument(<AddToCart product="" quantity=""/>); 
    expect(ReactTestUtils.Simulate.onSubmit(formInstance)).toBeCalled(); 
    }); 
}); 

Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. 

答えて

3

EnzymeJestの使用を検討して

はここで、これまでのテストのために私のコードです。私はそれが反応の単体テストのための良いスタックだと思う。

また、LogInコンポーネントの[送信]機能をテストするサンプルテストを行いました。

import React from 'react'; 
import {shallow} from 'enzyme'; 
import LogIn from './LogIn'; 

describe('<LogIn />',() => { 
    const testValues = { 
     username: 'FOO', 
     password: 'BAZ', 
     handleSubmit: jest.fn(), 
    }; 

    it('Submit works',() => { 

     const component = shallow(
      <LogIn {...testValues} /> 
     ); 
     component.find('#submitButton').simulate('click'); 
     expect(testValues.handleSubmit).toHaveBeenCalledTimes(1); 
     expect(testValues.handleSubmit).toBeCalledWith({username: testValues.username, password: testValues.password}); 
    }); 
}); 
+0

コンポーネントをマウントしている場合、これはうまく動作しません。しかし、あなたは 'component.find( '#submitButton')。simulate( 'submit');を使ってsubmitイベントをシミュレートすることができます。 – Ajikan

関連する問題