我有一個反應的組分。我想測試它們。但是每次嘗試findRenderedDOMComponentWithTag
以及經過測試的組件時,我都會收到意想不到的錯誤。這裏是噶錯誤日誌:reactjs得到'undefined是不是在測試一個function`茉莉
05 09 2015 20:31:23.450:INFO [watcher]: Changed file "/tmp/35ffb917aab483a567d1be6fed779291.browserify".
PhantomJS 2.0.0 (Linux 0.0.0) DestroySession should process user logout FAILED
TypeError: undefined is not a function (evaluating 'target.dispatchEvent(e)') in http://localhost:9876/karma.js (line 1134)
at /tmp/35ffb917aab483a567d1be6fed779291.browserify:59730:16
PhantomJS 2.0.0 (Linux 0.0.0): Executed 3 of 7 (1 FAILED) (skipped 4) (0.04 secs/0.019 secs)
我的堆棧:
- 的CoffeeScript
- 反應(+ JSX)
- browserify
- karma.js
- phantomjs
- 茉莉花
組件:
React = require('react')
ReactBootstrap = require('react-bootstrap')
Button = ReactBootstrap.Button
SessionActions = require('../../actions/session_actions.coffee')
module.exports = React.createClass
contextTypes: router: React.PropTypes.func
handleClick: (e) ->
e.preventDefault()
console.log 'хуйло'
SessionActions.destroy()
@context.router.transitionTo('/sessions/new')
render: ->
<Button onClick={@handleClick} className='btn btn-default navbar-btn'>Sign out</Button>
測試:
React = require('react/react-with-addons.js')
TestUtils = React.addons.TestUtils
DestroySession = require('../../../../app/coffee/components/sessions/destroy.coffee')
describe 'DestroySession', ->
instance = undefined
beforeEach ->
instance = TestUtils.renderIntoDocument(<DestroySession />)
it 'should process user logout', ->
localStorage.setItem('token', 123)
localStorage.setItem('userName', 'Anonymous Person')
localStorage.setItem('userId', 11)
button = TestUtils.findRenderedDOMComponentWithTag(instance, 'button')
console.log button
這很奇怪,但我得到一個錯誤,當我嘗試console.log
我的按鈕變量。如果我註釋掉我的測試的最後一行,它會通過。發生了什麼?
我認爲這是很好:我可以評估和測試針對實例成功,但如果我推實例'console.log',我得到相同確切的錯誤。 – XML