目前使用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&#39; href不存在且测试返回null时!
有没有人找到解决这个问题的方法?
答案 0 :(得分:1)
如果您需要,您需要在<Router>
个实例下呈现内容<Link>
实际工作。 <Router>
提供了<Link>
用于生成href
并处理点击的上下文的历史记录实例。
为了方便测试,我们将允许您在没有历史记录实例的情况下渲染<Link>
,但正如您所看到的,它们将无法正常运行。
答案 1 :(得分:-1)
expect(ReactDOM.findDOMNode(button).getAttribute('href')).toBe('/admin')
这不是找错了吗?你不想找到锚吗?