5

我无法弄清楚如何使用 Play 框架或 Play 集成测试进行 Angular e2e 测试。如果我不能这样做,我觉得 AngularJS 会失去很多价值。我不知道如何使用 Play 进行 e2e。至于 Play 集成测试,webDriver 可以看到 ng 属性,但与我尝试过的代码的情况一样,它不能模拟正确的行为。有没有人有类似的经历或者解决方法?

或者也许有一个很好的 Angular 替代方案(例如具有良好库的 MVC 框架),它可以更好地与 Play 测试集成,并且可以帮助我减少前端代码的行数?我已经在使用coffeescript、jQuery 和Bootstrap。谢谢!

4

1 回答 1

1

请对“适当的行为”更精确一点。什么是错误?将 e2e 测试与 Play 工作流程集成或仅使用 e2e AngularJS 绿色而不是红色有问题吗?

这里的困难是定义“端到端”,因为它没有很好的定义,在维基百科中没有提到它。你可以很好地了解它是什么,因为它是自言自语的,这里还有一个关于端到端的优秀线程:http: //www.geekinterview.com/question_details/40319

因此,假设您想在接近生产环境中使用 Front + Back 测试所有场景。

AngularJS 的端到端测试应该使用 Karma 来完成,但是,警告,它将很快被 ProtractorJS 更改。

使用 Karma 进行 e2e 测试有严重的缺点:

  • 如果你用后端测试你的 AngularJS 应用程序,它可能会失败,更具体地说,后端任何一点太慢的东西都可能导致绿色测试,有时无缘无故地失败。

  • 使用 Angular 进行正确的 e2e 测试的杀手锏是:你不能双击、滚动鼠标等。

这是我的建议:

  • 仅将 Karma 用于前端测试,并使用良好的旧存根作为后端。检查是否显示了正确的 css 元素以及是否发出了正确的 HTTP 请求。它会让你对前端开发充满信心。

  • 不要使用 Karma 进行端到端测试。我发现 Sikuli 非常出色地完成这项工作。将它与 Fitnesse 或 testNG 一起使用以获得更好的集成。

  • 可能是 ProtractorJS 将在下一个未来完成这项工作。

西库里:http ://www.sikuli.org/

Fitnesse + sikuli 示例:https ://github.com/xebia/FitnesseSikuli

量角器:https ://github.com/angular/protractor

于 2013-08-27T08:37:23.143 回答