目前正在使用 Jest 和 React-Router 来尝试和测试一个元素是否有一个具有预期值的 href。
遵循说明 here
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'in 按钮时,href 不存在且测试返回 null!
有没有人找到解决这个问题的方法?
最佳答案
您需要在 <Router>
下渲染内容例如,如果你想要<Link>
实际工作。 <Router>
在 <Link>
的上下文中提供历史实例用于生成 href
s 并处理点击。
为了方便测试,我们会让你渲染<Link>
没有历史实例,但如您所见,它们将不起作用。
关于javascript - 测试 React-Router v1.0.0 href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33435316/