一尘不染

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

angularjs

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

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

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

我们应该怎么做?


阅读 220

收藏
2020-07-04

共1个答案

一尘不染

您可以创建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(...);
});
2020-07-04