【问题标题】:Angular 5 - End to End testing with ngModelAngular 5 - 使用 ngModel 进行端到端测试
【发布时间】:2018-07-24 19:36:07
【问题描述】:

上周我们试图将 e2e 测试添加到我们的项目中,但似乎(在网络上进行了大量研究之后)没有库可以与 Angular ngModel(版本 2+)一起使用。

我们能做什么?除了量角器,还有什么不支持 Angular 2 ngModel 和绑定?

html 示例:

我需要寻找以下模型“data.user.name”。

谢谢。

【问题讨论】:

    标签: angular protractor angular5 e2e-testing angular2-ngmodel


    【解决方案1】:

    在 ngModel 中使用 proactor 没有问题。 请考虑查看此repository

    我已经用过了。您只需要获取e2e 目录并查看package.json 中的dev 依赖项是什么。


    编辑您的编辑:访问内部模式“data.user.name”

    您不应该为此使用e2e 测试,这是没有意义的。您需要对每个组件进行定期单元测试。请考虑在src 目录中复制*.spec.ts 中的内容。另请参阅上述存储库中的test-config

    单元测试的官方文档是here

    总结

    • 访问组件及其值,例如 data.user.name 是在测试单元方面,Angular 提供了一个 heavy 文档(但制作精良)。
    • 访问 DOM 是在 e2e 端,使用常规 javascript API,如下所示:
      expect(userNameField.getAttribute('value')).toContain('myusername');

    【讨论】:

    • 你能告诉我这个的语法是什么吗?我编辑了问题并添加了 html 示例来查找
    • 您的回复似乎没有任何变化
    • 那么,你说我们不能使用“ngModel”进行e2e测试,因为它是Angular,与DOM无关?
    • 端到端测试就是这个意思,它不仅仅意味着 DOM 状态测试。有一些完全有效的测试用例,您可以在其中测试由 Angular 模型或 -binding 标识的字段的内容/状态。我们也对此进行了测试,发现它缺乏。 Protractor 似乎能够帮助我们解决一个重要问题:时间。但是当您尝试使用 Angular 特定的字段标识符查找字段时,Angular 4 和 Protractor 的组合会失败。我相信 Angular 5 也是如此,但我还没有亲身测试过。请证明我错了。 :-)
    • 无法证明,但为了帮助我理解,为什么要测试 ngModel 而不仅仅是输入的“值”属性?
    猜你喜欢
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    相关资源
    最近更新 更多