首页 文章

使用AngularJS生成页面时的标记验证

提问于
浏览
6

我们使用AngularJS创建了单页面应用程序 . 我们想验证该应用程序的标记 . 问题是标记主要是用脚本生成的,所以如果我们将源代码传递给验证器,结果只是部分的 .

目前,我们正在考虑以下列方式测试页面 .

  • 使用Selenium Web自动化库打开页面 .

  • 做一些行动 .

  • 将当前HTML转储到文件 .

  • 使用独立验证器处理它 .

实现这个流程非常耗时,因为我们需要硬编码使用应用程序的所有方法,所以我想问:还有其他方法吗?

3 回答

  • 2

    使用 AngularJS 只要您坚持使用 AngularJS 编程模型并坚持以下内容,您应该 NOT 必须验证页面的每个变体,因为 DOM 会更改单页应用程序中的脚本: -

    • Validate every HTML file/fragment .

    这些是Angular模板/部分或您可能拥有的任何HTML文件(index.html) . 使用基于 grunt 的html验证器插件,如this,以便grunt工作流可以确保HTML在提交到源代码存储库之前是有效的 . 这样的插件可以验证HTML片段 .

    • Use built-in AngularJS directives to manipulate the DOM .

    例如ngSwitch,ngView,ngIf等,而不是使用jQuery或其他机制的任何自定义的东西 .

    AngularJS 已经确保了有效的HTML DOM . 这意味着您生成的HTML始终有效 .

  • 0

    您是否考虑过使用Angular e2e:

    http://docs.angularjs.org/guide/dev_guide.e2e-testing

    这允许您从html访问get / validate元素,如:

    expect(element('#email').html()).toBe('something');
    

    来自使用jazmine的Angular文档:

    describe('Buzz Client', function() {
    it('should filter results', function() {
      input('user').enter('jacksparrow');
      element(':button').click();
      expect(repeater('ul li').count()).toEqual(10);
      input('filterText').enter('Bees');
      expect(repeater('ul li').count()).toEqual(1);
    });
    

    });

    Update 1

    然后你可以尝试类似的东西:

  • 4

    我将此称为GUI级别测试 . Visual Studio具有出色的浏览器记录和回放工具,允许测试人员创建自动化测试,以验证测试人员想要的任何内容 .

    这是一段视频:https://onedrive.live.com/?cid=ae5cd7309cccc43c&id=AE5CD7309CCCC43C%21183&sff=1&authkey=%21ANqaLtCZbtJrImU&v=3

    您需要使用Premium版本才能执行此操作 . 另外,我听说过关于Selenium的好报道,事实上,MSFT自己已经认可了它 .

相关问题