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

Jas*_*son 10 javascript testing angularjs protractor

我们在几个JS文件中为我们的AngularJS应用程序进行了几次Protractor端到端测试,它们运行良好.但是,整个测试过程中存在大量重复的代码,我们希望将其干掉.

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

将它们重构为我们可以导入的模块会很好.我一直在寻找几个小时,但没有找到一个好的解决方案.

我们该怎么做?

Ale*_*kov 22

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

登录-helpers.js

exports.loginToPage = function () {
    //nodejs code to login
};
Run Code Online (Sandbox Code Playgroud)

protractor.conf.js

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

page.spec.js

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

    //expect(...).toBe(...);
});
Run Code Online (Sandbox Code Playgroud)

  • 你确定登录助手不应该是`module.exports.loginToPage = function ...` (4认同)