小编cma*_*o01的帖子

如何使用jasmine和angular-mocks测试$ http而不用mock?

我想对我的服务器进行真正的调用进行集成测试,所以,我不想使用angular-mocks的$ httpBackend模块,所以我试试这个:

beforeEach(inject(function($rootScope,_MembersDataSvc_){
    service = _MembersDataSvc_;
}));

it('test',function(done){
    service.me().then(function(){done();});
});
Run Code Online (Sandbox Code Playgroud)

服务是:

function me() {
      return $http
        .get('urlBase/me')
        .then(meSuccess);

        function meSuccess(response) {
            return response.data.members[0];
        }
    }
Run Code Online (Sandbox Code Playgroud)

这从来没有调用$ http,似乎angular-mocks覆盖了$ http服务从未拨打过电话.

一些想法?

编辑1:

根据这篇文章:http://base2.io/2013/10/29/conditionally-mock-http-backend/

你可以为那些你不想模拟的$ http调用做一个passThrough,所以你试试这个:

var service;
    var scope;
    var $httpBackend;

    beforeEach(inject(function($rootScope,_MembersDataSvc_,_$httpBackend_){
        service = _MembersDataSvc_;
        scope = $rootScope.$new();
        $httpBackend = _$httpBackend_;
    }));

it('test',function(done){
        //this.timeout(10000);
        $httpBackend.whenGET(/views\/\w+.*/).passThrough();
        $httpBackend.whenGET(/^\w+.*/).passThrough();
        $httpBackend.whenPOST(/^\w+.*/).passThrough();
        service.me().then(function(response){console.log(response);done();});
        scope.$apply();
        //service.getDevices(member).then(function(response){console.log(response);done();})
    });
Run Code Online (Sandbox Code Playgroud)

但是passThrough在这里是未定义的.

编辑2:

我读过这篇文章:http://blog.xebia.com/2014/03/08/angularjs-e2e-testing-using-ngmocke2e/,但我认为这是一个独立的测试??,我想用业力和茉莉花.

这是我的全部测试.

describe('integration test', function () {

    beforeEach(function () {
        module('MyAngularApp');
    });

    var service; …
Run Code Online (Sandbox Code Playgroud)

jasmine angularjs angularjs-http

7
推荐指数
1
解决办法
2191
查看次数

使用ionic安装和卸载cordova app时执行脚本

多年来我一直在使用cordova,离子不到1年.

我正在寻找在安装应用程序和卸载时运行JavaScript函数的方法.

我做了很多搜索,但没有发现任何关于它的事情,有人有想法,至少有一个近似作为起点?

非常感谢.

cordova ionic-framework

7
推荐指数
1
解决办法
4488
查看次数

服务mongod开始debian不起作用

我在Google Compute Engine上创建了一个linux debian实例.

我安装了git,node.js,python和其他一些没有问题的东西

但是当我安装mongodb时,完成安装并安装后尝试运行mongod,说:[FAIL]启动数据库:mongod失败了!

我尝试:sudo service mongod start并且是一样的.

我尝试了很多东西:

rm mongodb.lock

将数据路径更改为/ data/db将更改更改为mongodb.log

但没什么用.

当我运行/etc/init.d/mongod启动时

错误是:start-stop-daemon:无法将9月gid改为65534(操作不允许)失败!

知道什么可能是错误吗?

mongodb.log是空的,所以我可以在这里粘贴详细的结果.

谢谢

debian mongodb google-compute-engine

4
推荐指数
1
解决办法
6947
查看次数