量角器可重复使用的值

时间:2016-01-04 11:04:51

标签: javascript angularjs jasmine protractor

我在从Protractor测试中获取值并能够重用这些值时遇到了一些麻烦。

我有一个应用程序,可以从表单创建新记录,然后将它们显示给用户。成功添加后,将向用户显示成功警报,显示新创建的记录的ID。 "您已成功添加ID为{{newEntry.id}}"的条目。

我有一套测试断言所有字段都经过正确验证等,这些都正常工作。我现在想通过获取新创建的记录并测试一组新值是否正确更新来测试事物的更新方面。因此,我想获取新创建的记录的ID并重新使用它。

我在套件顶部创建了变量ID

var id;

然后我在表单上运行所有验证测试并提交正确的提交。然后我检查是否显示了成功消息,并且在这个例子中,ID = 2。

describe('Add users', function() {

    var endpoint = "users";
    var id;

    correctSubmission(endpoint, id);

    function correctSubmission(endpoint, id) {
        describe('Testing correct submission', function() {
            it('should navigate back to the list page', function() {
                expect(browser.getCurrentUrl()).toBe("list/" + endpoint);
            });
            it('should display a success message', function() {
                expect(element(by.css('.alert-success')).isPresent()).toBeTruthy();
            });
            it('should get the record ID from the success message', function() {
                expect(element(by.css('.add-message')).evaluate('newEntry.id')).toEqual(2);
                id = element(by.css('.add-message')).evaluate('newEntry.id');
                return id;
            });
        });
    };
});

我需要基本上获得等于2的ID并将其返回到全局ID,以便我可以在其他测试中使用它。显然,ID目前是未解决的承诺,我试图使用:

protractor.promise.all(id).then(function (result) {
    console.log("ID is: " + result);
});

但这只会记录字符串。

由于我尝试过各种各样的事情,我对下一步该做什么感到有点迷茫,但无济于事,我在这个项目上被推迟了。

非常感谢你能帮助这个量角器n00b。

1 个答案:

答案 0 :(得分:1)

您是否尝试使用量角器params配置属性?

exports.config = {
    params: {
        myid: 'somevaluehere'
    }
};

然后你可以通过

访问它
browser.params.myid