【问题标题】:Angular prevent mocking of $http serviceAngular 防止模拟 $http 服务
【发布时间】:2014-06-30 15:40:55
【问题描述】:

我正在为一个连接到我们也在开发的 REST API 的 Angular 应用程序编写一些测试。在这种情况下,我实际上想做一个集成测试而不是一个单元测试,所以我不想让 $http 服务被嘲笑。我想做一个真正的 AJAX 请求并测试响应是否符合我们的预期。

我不能简单地删除 angular-mock.js,因为这是其他测试所必需的,有没有办法强制 angular 使用真实的服务而不是替换为模拟的服务?

【问题讨论】:

    标签: javascript angularjs unit-testing karma-runner


    【解决方案1】:

    您是否尝试过使用“passThrough”选项?它是专门为此目的而设计的:

    与单元测试相反,在端到端测试场景中,或者在开发应用程序时将真正的后端 api 替换为 mock 的场景中,通常希望某些类别的请求绕过模拟并发出一个真实的 http 请求(例如从网络服务器获取模板或静态文件)。要使用此行为配置后端,请使用 whenpassThrough 请求处理程序而不是 respond

    例如:

    $httpBackend.whenGET(/my-resource\/.*/).passThrough();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-23
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      • 1970-01-01
      • 2018-08-26
      • 1970-01-01
      相关资源
      最近更新 更多