【问题标题】:Call angular function from protractor从量角器调用角度函数
【发布时间】:2015-01-11 16:53:10
【问题描述】:

我是 Angular 和 Protractor 的新手。

我正在使用量角器来测试 Angular 页面。 我正在尝试测试登录过程。

部分html是:

< li data-ng-show="isLoggedIn()" >

我想通过调用“isLoggedIn()”函数来确保凭据正确。 “isLoggedIn()”函数位于名为“navControl”的控制器中。

我可以吗?如何? 是否有其他测试登录的建议?

【问题讨论】:

    标签: html angularjs testing protractor end-to-end


    【解决方案1】:

    您应该像用户一样测试您的登录页面(如果您使用量角器) - 在您的登录表单中输入一些文本,然后单击“登录”按钮!在此之后,检查页面是否存在您希望在用户登录后可见的任何元素。您实际上不应该直接调用您的应用程序函数 - 测试这些属于单元测试,而不是量角器设计用于的 e2e 测试:)

    【讨论】:

    • 感谢您的回答。问题是如何去做。我发布的
    • 元素是登录时更改的元素。它变成了“显示”。怎么查?
  • 你需要阅读你正在使用的两件事; ng-show 将简单地将 ng-hide css 类添加到应该隐藏的元素,并在元素应该显示时删除 ng-hide css 类。 (取自文档,here。)接下来,在量角器中,您需要一个测试来检查您的
  • 元素是否显示 - 为此,您可以检查它是否具有我提到的 css 类。可以在 Protractor 帮助中找到如何执行此操作的示例,here
  • (续) - 您的测试可能会使用类似于以下的行来检查类的存在:expect(hasClass(element(by.id('my_list_id')), 'ngHide')) .toBe(true);
  • 【解决方案2】:

    感谢您的帮助。 我正在寻找的确切短语是这样的:

    expect($('[data-ng-show="isLoggedIn()"]').isDisplayed()).toBeTruthy();
    

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签