如何在赛普拉斯 e2e 测试之前设置 NGRX 状态?

Posted

技术标签:

【中文标题】如何在赛普拉斯 e2e 测试之前设置 NGRX 状态?【英文标题】:How to set NGRX state before a cypress e2e test? 【发布时间】:2020-05-02 04:18:41 【问题描述】:

我正在尝试为我的一个 UI 页面编写 e2e 测试,该页面依赖于 NGRX 状态。 在开始测试之前不确定如何设置 NGRX 状态。 你能帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

你读过这篇文章吗? https://www.cypress.io/blog/2018/11/14/testing-redux-store/

它详细说明了如何设置测试以访问/读取状态。

我建议按照那里的步骤操作。要设置商店的状态,您有两种选择:

    在代码中手动分派正确的操作,使您的状态进入测试所需的位置。这可以通过编程方式完成,也可以通过 cypress 本身通过触发点击/选择/键入事件来完成。 使用 NgRx 8,您可以mock the store and mock selectors。

在单元测试场景中,我认为使用 #1 的程序化方法是一个糟糕的选择,但鉴于这是一个 e2e 测试,这两种选择都是可行的 IMO。

【讨论】:

以上是关于如何在赛普拉斯 e2e 测试之前设置 NGRX 状态?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用赛普拉斯测试文件输入?

使用赛普拉斯的 e2e 测试中的身份验证错误:chrome-error://chromewebdata

赛普拉斯可以运行在赛普拉斯文件夹之外导入的测试文件吗?

如何在赛普拉斯的所有测试套件之前执行代码?

赛普拉斯与SystemJS

赛普拉斯 - 如何按顺序运行测试文件