Я только что начал модульное тестирование своего проекта, адаптер настроен правильно, и я написал несколько тестов. Некоторые из моих тестов выдают ошибки, а именно те, в которые я включаю переменную из состояния избыточности. Следующее - только один из них:
export class BasePage extends React.Component {
componentDidMount() {
const baseId = this.props.match.params.baseId;
const access_token = this.props.auth;
if (this.props.match.params.baseId) {
this.props.dispatch(fetchSingleBase(baseId, access_token));
}
}
}
Указанная ниже ошибка также произошла в приведенном выше componentDidMount
, но мне удалось исправить это с помощью оператора if
.
BasePage
отображается через Router в app.js:
return (
<div>
<Navbar />
<main>
...
<Route exact path="/single-base/:baseId" component={BasePage} />
</main>
</div>
);
На базовую страницу я возвращаю:
return (
<div className="basepage">
{title}
<UserList baseId={this.props.match.params.baseId} />
<MessageList baseId={this.props.match.params.baseId} />
</div>
);
Если утверждение здесь не работает.
При запуске теста npm я получаю следующее сообщение об ошибке:
TypeError: Cannot read property 'params' of undefined
И, наконец, самые основы теста:
import React from "react";
import ConnectedBasePage, { BasePage } from "./basepage";
import { shallow, mount, render } from "enzyme";
describe("<BasePage/>", () => {
it("Renders without crashing", () => {
shallow(<BasePage/>);
});
});
Как решить эту ошибку?