我的 React-Component 看起来像这样(简化了很多):
const prepareStuff = (
{/* some parameters */}
): void => {
doOtherStuff(
{/* some parameters */}
);
};
const doOtherStuff = (
{/* some parementers */}
): void => {
calculate(file, context)
.then((data) => {
// ...
})
.catch((error: Error) => {
console.error(error.message);
// here my snackbar/taost notifications are triggered
});
};
export const MyComponent = () => {
useEffect(() => {
prepareStuff(
{/* needed parameters */}
);
});
}
我们想测试或模拟计算方法是否抛出错误。所以目标是在调用计算方法并在之后被捕获时引发错误。这是必需的,以便我可以测试我的错误通知(snackbars/toasts)是否显示在浏览器中。
我找不到监视或存根此方法的方法。我们目前正在使用赛普拉斯组件测试。这甚至可能吗?
目前的测试如下所示:
beforeEach(() => {
mount(
<MyComponent />
);
});
it('displays notification if calculate method throws an error.', () => {
cy.get('.error-notification').should('exist');
});