首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有谁有使用$httpBackend (模块ngMockE2E中的服务)的示例吗

有谁有使用$httpBackend (模块ngMockE2E中的服务)的示例吗
EN

Stack Overflow用户
提问于 2013-02-19 12:36:52
回答 2查看 9.9K关注 0票数 9

我真的在寻找最简单的方法来让我的angular应用程序使用模拟后端服务。

任何指针都会很棒,一个示例应用程序展示了如何编写一个简单的应用程序,并使用它来完成这项工作。tnx!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-20 15:57:12

以下是一个使用$httpBackend的示例的sample plunkr,该示例使用无后端开发作为回答this question的示例。

我添加到plnkr中以使其工作的主要内容包括:

  1. 引用了html中的angular-mocks.js文件。
  2. 将app.js
  3. Injected $httpBackend中第3行的ngMockE2E requires数组添加到了angular.module中,并添加了代码以告诉模拟后端在请求GET到特定$httpBackend时响应什么。

这主要取自$httpBackend文档。请注意,您可以为任何想要实际到达后端的调用执行.passThrough() (绕过模拟)。如果后端的某些部分已经在工作,这一点尤其有用。

票数 11
EN

Stack Overflow用户

发布于 2015-02-12 10:26:53

以下是从各种示例中提取的基本模板:

代码语言:javascript
复制
'use strict';

(function() {

    if( !document.URL.match(/\?nobackend$/) ){
        // if not requested only add a blank stub to app dependency.
        angular.module('ds.backendMock', []);

    } else if (document.URL.match(/\?nobackend$/)) {

        // if the query string is present add a module with a run definition to replace the back end.
        angular.module('myMock', ['ngMockE2E'])

            .run(function($httpBackend) {

                // MOCK-RUNNER-CONFIGURATION-.
                var DOMAIN = 'example.com',
        $httpBackend.whenGET('http://'+DOMAIN+'/someexample')
                    .respond(
                        //MOCK-ERROR-STATUS-CODE
                        //401 //500 //404  //uncomment integer to mock status code and comment out mock data.
                        //MOCK-DATA-RESPONSE
                        {
                          'id' : '1',
                          'name' : 'MOCK',
                          'description' : 'mocking',

                        }
                    ); //end mock.


                    // various passthroughs. these allow existing services to work, while some are mocked.
                    $httpBackend.whenGET('./some.html').passThrough();

                    // dont mock everything else, specify pass through to avoid error.
                    $httpBackend.whenGET(/^\w+.*/).passThrough();
                    $httpBackend.whenPOST(/^\w+.*/).passThrough();

                });

        }

})(angular);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14949932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档