angularjs - 在 Protractor 中模拟 E2E 测试中的服务

标签 angularjs protractor e2e-testing

我想为我的应用程序编写一个功能测试,并且我想模拟我的loginService服务,以加快测试速度。我不想模拟 $http,而是模拟内部调用它的服务,但我无法对函数 loginService.validate 进行监视,该函数向服务器发送 HTTP 查询,但未加载,因为它是在驱动程序中,而不是在测试本身中。我还查看了 addMockModule 但我不明白如何使用它。有没有一种简单的方法可以做我想做的事?我看了这些,但没有帮助:

Mocking and Stubbing with protractor

Mocking an angular service in Protractor

最佳答案

试试这个。

describe('MockingHttp', function() {
  beforeEach(function() {
    browser.addMockModule('httpMocker', function() {
      angular.module('httpMocker', ['ngMockE2E'])
      .run(function($httpBackend) {
        $httpBackend.whenGET(
          'http://jsonplaceholder.typicode.com/photos')
          .respond([
          {
            albumId: 1,
            id: 1,
            title: "accusamus beatae ad",
            url: "http://placehold.it/600/92c952",
            thumbnailUrl: "http://placekitten.com/g/200/300"
          }
          ])

      })
    })
  });

阅读this以获得更多说明。 :)

关于angularjs - 在 Protractor 中模拟 E2E 测试中的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37231715/

相关文章:

javascript - 我应该将事件监听器代码放在所有 Controller 都使用的 AngularJS 中的什么位置?

javascript - 元素显示在 chromedriver DOM 中,但 Protractor 显示失败 : element not interactable

testing - 关于 .testcaferc.json 应该存放在哪里的困惑

javascript - 如何让 Angular 指令等待隔离范围数据可用?

angularjs - 使用 CSS3 动画识别掉帧的原因

javascript - Promise 和 for 循环 - 尝试验证多个元素文本

android - 用于在 Android 中离线测试服务器响应的透明代理

javascript - 在 then [protractor] 的参数中查找元素

Angularjs+Typescript 指令实现 $compile

javascript - Protractor 测试、访问和修改 Window 对象属性