時計(npm run test -- --watch
)を使用する場合、私は(下)Invariant Violation
を避けるために、元のrouter.browserHistory
を保存し、復元する必要がありました。
import * as router from 'react-router'
describe('some description',() => {
const oldBrowserHistory = router.browserHistory
after(() => { router.browserHistory = oldBrowserHistory })
it('some expectation',() => {
const spy = sinon.spy()
router.browserHistory = { push: spy }
// call your code here
expect(spy.withArgs(expectedArgs).calledOnce).to.be.true
})
})
不変違反:あなたは歴史のバージョン2.xまたはそれ以前のバージョンで作成した履歴オブジェクトを提供してきました。このバージョンのReact Routerは、v3の履歴オブジェクトとのみ互換性があります。履歴v3.xにアップグレードしてください。
(クレジットは私が正しい道に入門用user3682091する)
この答えで私のために鍵がある、だけではなく、 'browserHistory'または' hashHistory'の全体 'router'のインポートましたどのように私はそれを嘲笑しようとしていた。 –