gpt4 book ai didi

javascript - 单元测试 react Action - browserHistory 未定义

转载 作者:数据小太阳 更新时间:2023-10-29 05:45:11 26 4
gpt4 key购买 nike

我为我的行为编写测试,使用

{ browserHistory } from 'react-router';

当我运行测试时,导入的 browserHistory 由于未知原因未定义。因此,测试会抛出一个错误——“无法读取未定义的‘push’属性”;我不知道,为什么 browserHistory 未定义,如果它在我的应用程序中有效。有人可以帮助我吗?

最佳答案

我猜你没有使用 karma 或任何浏览器来运行你的测试。如果没有浏览器,对象 browserHistory 将是未定义的。您可能需要使用 sinon stub 您的浏览器历史记录。类似以下内容可能有帮助:

import chai from 'chai';
import sinonChai from 'sinon-chai';
import componentToTest from './component-to-test'
import sinon from 'sinon';
import * as router from 'react-router';

var expect = chai.expect;
chai.use(sinonChai);

describe('Test A Component', () => {

it('Should success.', () => {
router.browserHistory = { push: ()=>{} };
let browserHistoryPushStub = sinon.stub(router.browserHistory, 'push', () => { });
//mount your component and do your thing here
expect(browserHistoryPushStub).to.have.been.calledOnce;

browserHistoryPushStub.restore();
});

});

关于javascript - 单元测试 react Action - browserHistory 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37831788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com