当前位置: 首页 > 面试题库 >

如何在Protractor / AngularJS测试中重用代码

孟乐
2023-03-14
问题内容

我们在几个JS文件中为我们的AngularJS应用程序进行了一些量角器端到端测试,它们工作得很好。但是,在整个测试中有很多重复的代码,我们希望对此进行干燥。

例如,每次登录时,我们都必须单击文本元素,键入用户名和密码,然后单击Enter。现在,每个单个JS文件都有其自己的登录功能副本,该副本在每次测试之前都会被调用。

最好将它们重构到我们可以导入的模块中。我已经搜索了几个小时,但是找不到一个好的解决方案。

我们应该怎么做?


问题答案:

您可以创建nodejs模块并将其包含在量角器配置中

login-helpers.js

exports.loginToPage = function () {
    //nodejs code to login
};

protractor.conf.js

exports.config = {
    //...
    onPrepare: function () {
        protractor.loginHelpers = require('./helpers/login-helpers.js');
    }
    //...
};

page.spec.js

it('should do smth', () => {
    protractor.loginHelpers.loginToPage()

    //expect(...).toBe(...);
});


 类似资料:
  • 问题内容: 我正在编写一些测试以验证输入数据是否正确存储在本地存储中,如何从量角器测试中访问localStorage? 您如何使用executeScript?我可以从executeScript获取数据吗? 问题答案: 要从 本地存储中获取商品,请通过以下方式使用: 要 清除本地存储 的呼叫: 为了方便起见,我们还可以在本地存储中放置此帮助对象/包装器:

  • 我有角度的代码,它是 并且在量角器中使用了如下代码 我总是得到游戏错误,因为 失败:元素不可见 在代码中的元素(by.model(国家)). Click()工作正常,但没有在弹出窗口中选择md选项,请帮助。

  • 我有一个SPA,其中有多个具有相同类的div。我希望量角器选择可见的div并单击它。我一直得到,这让人相信它得到了一些不在这个特定页面上的元素(也许?)。我还得到,这再次让我认为它不是单击可见的,而是不可见的。 这是我的规格: 如何选择可见的 并单击它?

  • 问题内容: 如何测试广播后是否填充了示波器?我已经搜索并在stackexchange中找到了一些质量检查,但是没有一个回答我的问题。该代码可以正常工作,只是不知道如何对其进行测试。我可以补充一点,我是测试的新手,尤其是Jasmine。 所以,这是代码: 服务CrappySvc: 控制器GetCrappyCtrl: 茉莉花: })); }); 结石 问题答案: 您需要告诉Jasmine让间谍调用实际

  • 如何在AngularJS中检测onKeyUp? 我正在寻找一个'ngOnkeyup'指令,类似于ngChange,但我找不到任何合适的。 如果没有这样的指令,是否有一种干净的方法可以从浏览器本机onkeyup事件调用控制器?

  • 问题内容: 如何在AngularJS中检测onKeyUp? 我正在寻找类似于ngChange的’ngOnkeyup’指令,但是找不到合适的东西。 如果没有这样的指令,是否有一种从浏览器本地onkeyup事件调用控制器的干净方法? 问题答案: 编辑:请参阅下面的maklemenz的第二个答案,它引用了新的内置ng-keyup指令 您可以使用angular-ui库: 使用angular-ui,您可以