簡體   English   中英

測試React-Router v1.0.0 href

[英]Testing React-Router v1.0.0 href

目前使用Jest和React-Router來嘗試測試元素的href具有預期值。

按照這里的說明

jest.dontMock('../BasicPage')

describe('BasicPage', function() {
  let BasicPage = require('../BasicPage')
  let TestUtils = require('react-addons-test-utils')
  let ReactDOM = require('react-dom')
  let React = require('react')

  it('renders the Login button if not logged in', function() {
    let page = TestUtils.renderIntoDocument(<BasicPage />)
    let button = TestUtils.findRenderedDOMComponentWithTag(page, 'button')
    expect(ReactDOM.findDOMNode(button).textContent).toBe('Login')
  })

  it('renders the Account button if logged in', function() {
    let page = TestUtils.renderIntoDocument(<BasicPage authenticated={true} />)
    let button = TestUtils.findRenderedDOMComponentWithTag(page, 'button')
expect(ReactDOM.findDOMNode(button).getAttribute('href')).toBe('/admin')
  })
})

該元素有一個鏈接:

<Button bsStyle="primary"><Link to="/admin">Login</Link></Button>

當按鈕中的console.log'沒有href時,測試返回null!

有沒有人找到解決這個問題的方法?

如果您希望例如<Link>實際工作,則需要在<Router>實例下呈現內容。 <Router>提供<Link>用於生成href和處理點擊的上下文的歷史實例。

為了方便測試,我們將允許您在沒有歷史記錄實例的情況下呈現<Link> ,但正如您所看到的,它們將無法正常運行。

expect(ReactDOM.findDOMNode(button).getAttribute('href')).toBe('/admin')

這不是找錯了嗎? 你不想找到錨嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM