【问题标题】:Protractor testing: Can someone tell me what I'm doing wrong with Require?量角器测试:有人可以告诉我我在 Require 上做错了什么吗?
【发布时间】:2015-10-20 13:23:05
【问题描述】:

我正在尝试将我的 Protractor 测试分解为可管理的文件。 有人可以告诉我我在 Require 上做错了什么吗?

这是一个例子:

变量:C:/tests/variables/signInVariables.js

var emailAddress = element(by.model('loginData.userName'));
var password = element(by.model('loginData.password'));
var signInButton = element(by.css('[data-auto-field="SignIn"]'));

函数:C:/tests/functions/signInFunctions.js

var signInVariables = require ('../variables/signInVariables.js');

function signIn(a, b) {
    browser.get ('https://www.website.com');
    emailAddress.sendKeys(a);
    password.sendKeys(b);
    signInButton.click();
};

测试:C:/tests/protractor/conf.js

var signInFunctions = require ('../functions/signInFunctions.js');

it(' should sign in ', function() {
    signIn("someusername", "somepassword");
});

我运行它,这就是我得到的:

Failed: signIn is not defined

我确信这是一个简单的解决方法。我只是不知道自己在做什么。

【问题讨论】:

  • 我敢肯定这种逻辑中的一些没有意义。我现在正在看它,看到我搞砸的事情。但我的做法是对还是错?

标签: angularjs jasmine automated-tests protractor pageobjects


【解决方案1】:

你可以阅读更多关于 require 和 modules here,你的错误是 signInVariables 不是模块,没有要使用的 exports 对象。 你可以这样做:

exports.emailAddress = element(by.model('loginData.userName'));
exports.password = element(by.model('loginData.password'));
exports.signInButton = element(by.css('[data-auto-field="SignIn"]'));

或将 signInVariables 定义为一个模块并将其作为一个整体导出。 希望我能帮上忙。

【讨论】:

    【解决方案2】:

    require 并不完全符合您的预期。它不只是按照您使用它的方式内联所需的文件。 require 正在寻找 JSON 文件或 module.exports 对象。这是一个简单的例子。

    require_me.js

    module.exports = {a: "foo", b: "bar"};
    

    index.js

    var imports = require('require_me.js');
    console.log(imports); // Will produce {a: "foo", b: "bar"}
    

    【讨论】:

    • 根据@vrachlin 和 Brian Glaz 的回答,我阅读了有关 require 和 modules 的内容,抛出了一个 module.exports = { };围绕我单独文件中的变量和函数,并将我的等号重新格式化为冒号,将我的分号重新格式化为逗号。现在它正在工作。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 2021-12-08
    • 2013-02-08
    • 1970-01-01
    • 2021-11-16
    • 2014-04-19
    • 2019-04-24
    相关资源
    最近更新 更多