加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在AngularJS中组织单元测试和e2e测试?

发布时间:2020-12-17 17:41:27 所属栏目:安全 来源:网络整理
导读:我需要为我的 JavaScript单页面应用程序组织单元测试和端到端测试.我正在使用AngularJS Protractor / Cucumber进行e2e测试,使用Chai进行单元测试. 我在两个不同的文件夹(单元和e2e文件夹)中进行了e2e和单元测试,我目前没有利用page object设计模式.这些文件
我需要为我的 JavaScript单页面应用程序组织单元测试和端到端测试.我正在使用AngularJS Protractor / Cucumber进行e2e测试,使用Chai进行单元测试.

我在两个不同的文件夹(单元和e2e文件夹)中进行了e2e和单元测试,我目前没有利用page object设计模式.这些文件是非结构化的,不共享很多代码,所以我多次重复自己.

我认识到这种方法不会扩大规模

是否有最佳实践以这样的方式重新组织测试我编写最少量的代码,保持测试代码DRY?

解决方法

首先,你绝对应该切换到使用Page Object模式并将页面对象保存在一个单独的目录中 – 我认为建议调用目录po.

以下是您的示例,我们目前拥有的项目结构:

$cd e2e
$tree -L 1
.
├── config
├── db
├── helpers
├── mocks
├── po
└── specs

config是我们保留量角器配置的特殊目录 – 可能有多个配置 – 例如,用于本地测试和测试,例如Br??owserStack.

帮助程序基本上是我们的“libs”/“utils”目录.我们保留定制的茉莉花匹配器,带辅助功能的附加“辅助”模块.此外,我们有localStorage和sessionStorage模块,它们是window.localStorage和window.sessionStorage对象的方便包装器.

mocks是我们保留protractor-http-mock mocks的目录.

po是定义页面对象的目录.每个页面对象都在一个单独的文件中

specs是我们所有规范都存在的地方 – 它们在逻辑上被组织成子目录.

一些助手库是made globally available via global,例如:

onPrepare: function () {
     global.helpers = require("../helpers/helpers.js");
     // ...
},

另外,为了使助手和po导入更方便并避免遍历树中的目录并更好地处理嵌套,我们已经切换到使用@Michael Radionov建议的requirePO和requireHelper辅助函数,请参阅:

> Using require with relative paths

我也非常喜欢@finspin提出的想法,即从每个Page Object中创建一个节点包.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读