用量角器嘲弄和剔骨

32 javascript selenium unit-testing angularjs protractor

我想用量角器测试我的角度应用程序.该应用程序有一个与服务器通信的API模块在这些测试中,我想模拟这个Api模块.我不想进行完整的集成测试,而是根据API的预期值从用户输入进行测试.这不仅可以使客户端测试更快,而且还允许我测试边缘情况,例如连接错误.

我怎样才能用量角器做到这一点?我刚刚开始设置集成测试.

我使用了npm量角器模块,安装了selenium,调整了默认配置并使用onProtractorRunner.js来验证我的设置是否有效.

推荐的嘲讽方式是什么?我假设模拟必须在浏览器中完成,而不是直接在测试文件中完成.我假设测试文件中的命令是特定于量角器的,并将被发送到selenium跑步者.因此,我无法在会话和测试期间共享javascript对象.

我莫名其妙地希望我需要一个像sinon.js这样的间谍库,或者这已经包含在量角器中?

编辑:在量角器问题跟踪器中读到了这个问题,这可能是一种方法.基本上你在测试中写了一个模拟模块,它被发送到浏览器/应用程序范围内执行.

编辑:这是更有希望的问题.第一部分讨论将Mocks添加到Angular App.第二个谈论嘲笑后端.

这看起来非常好,在这种情况下,Angular App将保留其原始形式.但是,目前仅适用于已弃用的ng-scenario.

Ken*_*nic 9

这篇博客文章讨论了Protractor的高级使用场景.特别是它涵盖addMockModule()了Protractor浏览器对象的鲜为人知的 方法.该方法允许您在Protractor中创建角度模块(即API模块的模拟或存根),并将它们上传到浏览器,以替换给定规范或规范集的上下文中的实际实现.


iwe*_*ein 0

使用 Protractor 运行端到端测试的目的是验证应用程序是否可以集成运行。如果您尝试单独测试 ui 元素,那么使用正常测试中的小元素会更容易。就像 AngularJS 本身测试指令一样。

也就是说,如果您确实想进行模拟,一种方法是使用存根而不是真正的服务创建应用程序的单独构建。